After investigation, I found the drive was full indeed at the time of error, but in the morning when I looked at it it was not full, so that explains "Transaction log full" error.
But why does "Transaction log full" results with corruption of DB data?
Is that expected behavior ? (shouldn't be)