Hi, I'm trying to run some old delphi application, which uses BDE to connect to an access mdb file. The application displays an error, that it couldn't open the database. I can run BDEADMIN and I see that database aliases are configured propoerly. I did some winedebugg'ing and noticed following mesassages .... ... warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:gdi:GDI_GetObjPtr Invalid handle (nil) warn:x11drv:SWP_DoOwnedPopups (0x20034) hInsertAfter = (nil) fixme:font:WineEngCreateFontInstance just using first face for now warn:gdi:GDI_GetObjPtr Invalid handle 0xbb8 warn:x11drv:SWP_DoOwnedPopups (0x10026) hInsertAfter = (nil) fixme:font:WineEngCreateFontInstance just using first face for now warn:gdi:GDI_GetObjPtr Invalid handle 0xbc0 warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena magic for 729121c8 warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena magic for 7291c208 warn:file:wine_nt_to_unix_file_name L"JET1b1b.tmp" not found in /home/jleszews/.wine/dosdevices/x: warn:ntdll:NtCreateFile L"\\??\\X:\\JET1b1b.tmp" not found (c0000034) warn:file:CreateFileW Unable to create file L"X:\\JET1b1b.tmp" (status c0000034) warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena magic for 72efa6b0 warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena magic for 72eda398 warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena magic for 72f0f708 warn:x11drv:SWP_DoOwnedPopups (0x10026) hInsertAfter = (nil) fixme:font:WineEngCreateFontInstance just using first face for now warn:gdi:GDI_GetObjPtr Invalid handle 0xbc8 warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena magic for 72ee7698 warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena magic for 72efb6b8 warn:x11drv:SWP_DoOwnedPopups (0x10022) hInsertAfter = (nil) It seems, like WINE cannot create a file called JET1b1b.tmp on it's X: drive (which points to /home/jleszews/.wine/tmp) But it seems to me that it is creating this file ! I did : "watch ls -la" in this /tmp directory and this file appeared there. It disappeared when my application finished. Any help is appreciated. I can provide more information if it's needed. -- Regards Kuba
On Wed, 11 Aug 2004 13:45:58 +0200, you wrote:> Hi, > > I'm trying to run some old delphi application, which uses BDE to connect > to an access mdb file. > > The application displays an error, that it couldn't open the database. > > I can run BDEADMIN and I see that database aliases are configured propoerly. > > I did some winedebugg'ing and noticed following mesassages > > .... > ... > warn:gdi:GDI_GetObjPtr Invalid handle (nil) > warn:gdi:GDI_GetObjPtr Invalid handle (nil) > warn:gdi:GDI_GetObjPtr Invalid handle (nil) > warn:gdi:GDI_GetObjPtr Invalid handle (nil) > warn:gdi:GDI_GetObjPtr Invalid handle (nil) > warn:gdi:GDI_GetObjPtr Invalid handle (nil) > warn:x11drv:SWP_DoOwnedPopups (0x20034) hInsertAfter = (nil) > fixme:font:WineEngCreateFontInstance just using first face for now > warn:gdi:GDI_GetObjPtr Invalid handle 0xbb8 > warn:x11drv:SWP_DoOwnedPopups (0x10026) hInsertAfter = (nil) > fixme:font:WineEngCreateFontInstance just using first face for now > warn:gdi:GDI_GetObjPtr Invalid handle 0xbc0 > warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena > magic for 729121c8 > warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena > magic for 7291c208 > warn:file:wine_nt_to_unix_file_name L"JET1b1b.tmp" not found in > /home/jleszews/.wine/dosdevices/x: > warn:ntdll:NtCreateFile L"\\??\\X:\\JET1b1b.tmp" not found (c0000034) > warn:file:CreateFileW Unable to create file L"X:\\JET1b1b.tmp" (status > c0000034) > warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena > magic for 72efa6b0 > warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena > magic for 72eda398 > warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena > magic for 72f0f708 > warn:x11drv:SWP_DoOwnedPopups (0x10026) hInsertAfter = (nil) > fixme:font:WineEngCreateFontInstance just using first face for now > warn:gdi:GDI_GetObjPtr Invalid handle 0xbc8 > warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena > magic for 72ee7698 > warn:heap:HEAP_ValidateInUseArena Heap 72e90000: invalid in-use arena > magic for 72efb6b8 > warn:x11drv:SWP_DoOwnedPopups (0x10022) hInsertAfter = (nil) > > > It seems, like WINE cannot create a file called JET1b1b.tmp on it's X: > drive (which points to /home/jleszews/.wine/tmp) > But it seems to me that it is creating this file !The "warn" message does not contain all parameters for the CreateFile, but I guess it is just trying to test for the existence of the file ...> > I did : "watch ls -la" in this /tmp directory and this file appeared > there. It disappeared when my application finished.... and creates it when it was satisfied not to overwrite an existing file.> > Any help is appreciated. > I can provide more information if it's needed.The warn messages by themselves are not that useful. A first try at debugging this would go like this: -1 run wine with WINEDEBUG=+relay wine ... &> wine.log -2 kill the process when the error box appears. -3 open wine.log (BIG!) in your favorite editor and search for the error text that you saw in the error box. -4 look upward from that line in the file for calls that failed or otherwise look suspicious. Those may be the cause of the error. Rein. -- Rein Klazes rklazes@xs4all.nl
On Fri, 13 Aug 2004 14:55:55 +0200, you wrote:> > > > No it rarely comes that easy ;-). > > > Damn ;-) > > > Can you post a limited amount, say 500 lines of the log preceding this > > error message? > > Here are links to my log files: > http://www.ce3.pl/~jleszews/log.nnn > > Every file contains nnn lines from the +relay debug log. > Where nnn may be: 500, 1000, 5 000 and 10 000. > > http://www.ce3.pl/~jleszews/log.500 > points to the 500-line-long log you requested > > The last line in each file, was the first one that contained text which > appeared in error box. > The error message was "B??d otwarcia baz", which means "Error opening > database". > > I really appreciate Your help. Thanks a lot.I am afraid his is all activities painting the messagebox or dialog or so. Is it possible to put the complete log on the net? (bzip2 routinely compresses wine logs to a few percent of their original size). Rein. -- Rein Klazes rklazes@xs4all.nl
> Is it possible to put the complete log on the net? (bzip2 routinely > compresses wine logs to a few percent of their original size). >Here I am again. I was offline during the weekend. Of course I can put the complete logs on the net. Here it is: +relay: http://www.ce3.pl/~jleszews/log.relay.bz2 1.2 MByte +all: http://www.ce3.pl/~jleszews/log.all.bz2 2.3MByte -- Kuba
On Mon, 16 Aug 2004 11:08:54 +0200, you wrote:> > > Is it possible to put the complete log on the net? (bzip2 routinely > > compresses wine logs to a few percent of their original size). > > > > Here I am again. I was offline during the weekend. > > Of course I can put the complete logs on the net. > Here it is: > > +relay: > http://www.ce3.pl/~jleszews/log.relay.bz2 > 1.2 MByte > > +all: > http://www.ce3.pl/~jleszews/log.all.bz2 > 2.3MByteThere is definitely something strange here: |0009:Call kernel32.FindFirstFileA(4065f170 "X:\\INMEM000.REM",4065f030) ret=4be0780d search for the indicated file. ... |0009:Ret ntdll.RtlNtStatusToDosError() retval=00000012 ret=40269a3f |0009:Ret kernel32.FindFirstFileA() retval=ffffffff ret=4be0780d This call fails. The error code 00000012 means ERROR_NO_MORE_FILES. In other words the file is not found. Shortly after it: |0009:Call kernel32.CreateFileA(4065f054 "X:\\INMEM000.REM",c0000000,00000000,00000000,00000002,10000080,00000000) ret=4be055fe Create or open file. The fifth parameter (00000002) means OPEN_ALWAYS. Meaning that if the file does not exist it is created, if it does the file will be overwritten. ... |0009:Ret kernel32.CreateFileA() retval=ffffffff ret=4be055fe |0009:Call kernel32.GetLastError() ret=4be05773 |0009:Ret kernel32.GetLastError() retval=00000050 ret=4be05773 Also this call fails. The error 00000050 means ERROR_FILE_EXISTS. So first the file does not exist, then it does not, but that should not matter. Puzzling. What is the version of wine you are using? Can you have a look at that file, look at permissions etc? Rein. -- Rein Klazes rklazes@xs4all.nl
On Thu, 19 Aug 2004 14:31:17 +0200, you wrote:> > > > > I forgot to ask: what file system are you using? > > > > ext3 > I also tried with x: drive located on fat32 partition. > > I can convert it to ext2 if You think it might help.I have no indication that it would make a difference. [...]> OK > It seems like every value other than 0 means an error. > > I'm wondering how to find errors in the relay log. > Does it mean that every line with call to ntdll.RtlNtStatusToDosError > or to GetLastError and retval != 0, means there was something wrong ?Indeed, except that in most cases a success call leaves the LastError as it was. In general you must look at the return value of the call (retval=xxxxx). If that indicates failure, specifics are in the LastError value. Both the FindFileFirst and CreateFile calls return retval=ffffffff (-1) when failing. In both cases I had to consult the documentation at http://msdn.microsoft.com/library/> > > There is a remarkable similar bug in bugzilla: > > http://bugs.winehq.org/show_bug.cgi?id=2287 > > > > where a call fails complaining about the existence of a file that was > > just successfully deleted. > > > > Same wine version, both Fedora Core 2. Hmmmmm. > > I have RH9 on my second computer. I'll try it there. > And I can try Suse9 too. > > I'll let You know.Great. Rein. -- Rein Klazes rklazes@xs4all.nl