Bug 47565

GemStone/S 64 Bit

3.3.6, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1, 3.3.x


Exclusive lock failure can cause tranlog space full error

Creating a new tranlog involves multiple steps:

   1) file created with open(fn, O_CREAT|O_TRUNC|O_RDWR)
   2) file closed
   3) file opened again with open(fn, O_RDWR)
   4) file write lock requested using fcntl(fd, SETFL, ...)

Between steps 2 and 3, it is possible for another process to access the tranlog file.  In this case, in step 4 the lock request fails with the error EBADF/exclusive open: File is open by another process.

The handling of this error incorrectly reports the problem as tranlog space is full.

Last updated: 8/1/18