Quote:
I tried it, but I'm still not able to reproduce it. But I tried it on Win32.
my os is windows xp 32 bit SP3
dont waste your time on trying to re-create it issue, i found root
|
cause. Its simple to fix as you can see from procmon traces. Root
cause is pretty simple as you can see from my procmon trace.
http://rapidshare.com/files/397732121/Logfile.PML
its trace from db2 instance stopped, just db2dasstm running. it nicely
illustrates error. At beginning of capture, there is existing
db2diag.log file and everything is running smoothly. In middle i
deleted diag log fail and suddenly we see that it is started to fail.
You can look what happened. Wrong sequence is following.
queryopen
queryopen
createFile - creates new 0 bytes long file
lockFile offset 0, length 1, exclusive, dontwait. Fails because file
is zero sized and you cant lock 1 byte range on zero sized file.
Procedure for diag file locking needs to be changed. probably best way
will be to use file-wide locks instead of range locks, or query file
size before using range lock.