http://bugs.winehq.org/show_bug.cgi?id=18958
Summary: Adobe Reader 9 has a divide by zero error during install Product: Wine Version: 1.1.23 Platform: PC URL: ftp://ftp.adobe.com/pub/adobe/reader/win/9.x/9.0/enu/A dbeRdr90_en_US.exe OS/Version: Linux Status: NEW Keywords: download, Installer, regression Severity: normal Priority: P2 Component: msi AssignedTo: wine-bugs@winehq.org ReportedBy: austinenglish@gmail.com
Mid install, reports a crash (unhandled divide by zero).
+msi,+msidb attached. Running regression test now.
http://bugs.winehq.org/show_bug.cgi?id=18958
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression |
--- Comment #1 from Austin English austinenglish@gmail.com 2009-06-15 23:17:59 --- Apparently not a regression, just didn't notice before because of gui crash handler.
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #2 from Ken Sharp kennybobs@o2.co.uk 2009-06-18 13:50:53 --- Forgot the trace ;)
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #3 from Austin English austinenglish@gmail.com 2009-06-18 16:18:40 --- Created an attachment (id=21876) --> (http://bugs.winehq.org/attachment.cgi?id=21876) trace
+msidb makes it too big...
http://bugs.winehq.org/show_bug.cgi?id=18958
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |19191
http://bugs.winehq.org/show_bug.cgi?id=18958
Jaime Rave jaimerave@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jaimerave@gmail.com
--- Comment #4 from Jaime Rave jaimerave@gmail.com 2009-12-27 12:03:51 --- Still a problem in Wine 1.1.35.
http://bugs.winehq.org/show_bug.cgi?id=18958
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hans@meelstraat.net
--- Comment #5 from Hans Leidekker hans@meelstraat.net 2010-05-29 16:00:23 --- 0027:Ret msi.MsiProcessMessage() retval=00000000 0027:trace:seh:raise_exception code=c0000094 flags=0 addr=0x1000aa92 ip=1000aa92 tid=0027
It's crashing inside a custom action called DefragmentFiles, right after a call to MsiProcessMessage.
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #6 from Austin English austinenglish@gmail.com 2010-05-29 21:39:11 --- It seems it's trying to defragment. Looking at MSDN: http://msdn.microsoft.com/en-us/library/aa363911%28VS.85%29.asp
" To defragment a file
1. Use the FSCTL_GET_VOLUME_BITMAP control code to find a place on the volume that is large enough to accept an entire file.
Note If necessary, move other files to make a place that is large enough. Ideally, there is enough unallocated clusters after the first extent of the file that you can move subsequent extents into the space after the first extent. 2. Use the FSCTL_GET_RETRIEVAL_POINTERS control code to get a map of the current layout of the file on the disk. 3. Walk the RETRIEVAL_POINTERS_BUFFER structure returned by FSCTL_GET_RETRIEVAL_POINTERS. 4. Use the FSCTL_MOVE_FILE control code to move each cluster as you walk the structure.
Note You may need to renew either the bitmap or the retrieval structure, or both at various times as other processes write to the disk. "
Right before that crash, terminal output shows: fixme:ntdll:server_ioctl_file Unsupported ioctl 90073 (device=9 access=0 func=1c method=3) ... fixme:ntdll:server_ioctl_file Unsupported ioctl 90073 (device=9 access=0 func=1c method=3)
90073 is FSCTL_GET_RETRIEVAL_POINTERS.
Looking at a +file, it seems Adobe Reader is installing a file, then trying to defrag it: trace:file:CreateFileW L"C:\Program Files\Adobe\Reader 9.0\Reader\acrord32.dll" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE creation 3 attributes 0x20000000 ... trace:file:CreateFileW returning 0xb8 trace:file:DeviceIoControl (0xb8,90073,0xb3e35c,8,0xb47448,8204,0xb3e348,(nil)) fixme:ntdll:server_ioctl_file Unsupported ioctl 90073 (device=9 access=0 func=1c method=3)
More info on FSCTL_GET_RETRIEVAL_POINTERS here: http://www.wd-3.com/archive/luserland.htm
I tried a quick hack: diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c index b5d1c14..393bd4d 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -1243,6 +1243,12 @@ static NTSTATUS server_ioctl_file( HANDLE handle, HANDLE event, } SERVER_END_REQ;
+ if (code == FSCTL_GET_RETRIEVAL_POINTERS) + { + FIXME("FSCTL_GET_RETRIEVAL_POINTERS is a stub.\n"); + return STATUS_SUCCESS; + } + if (status == STATUS_NOT_SUPPORTED) FIXME("Unsupported ioctl %x (device=%x access=%x func=%x method=%x)\n", code, code >> 16, (code >> 14) & 3, (code >> 2) & 0xfff, code & 3);
returning different statuses (NOT_IMPLEMENTED, ACCESS_DENIED, etc.), but no luck. Seems it'll need something with a bit more meat.
http://bugs.winehq.org/show_bug.cgi?id=18958
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com
--- Comment #7 from Hans Leidekker hans@meelstraat.net 2010-05-30 09:33:44 --- *** Bug 20006 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=18958
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |musaella@gmail.com
--- Comment #8 from Hans Leidekker hans@meelstraat.net 2010-06-30 02:17:52 --- *** Bug 23445 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=18958
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cookiecaper@gmail.com
--- Comment #9 from Hans Leidekker hans@meelstraat.net 2010-07-08 09:09:20 --- *** Bug 23558 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=18958
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rusivi1@gmail.com
--- Comment #10 from Hans Leidekker hans@meelstraat.net 2010-08-16 09:20:53 --- *** Bug 23948 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #11 from rusivi rusivi1@gmail.com 2010-08-18 12:20:55 --- (In reply to comment #5)
0027:Ret msi.MsiProcessMessage() retval=00000000 0027:trace:seh:raise_exception code=c0000094 flags=0 addr=0x1000aa92 ip=1000aa92 tid=0027
It's crashing inside a custom action called DefragmentFiles, right after a call to MsiProcessMessage.
Hans,
I could not verify your assertion that the custom action noted is DefragmentFiles. How do you know the custom action is called DefragmentFiles and where may I find more information about it?
In the trace, I could verify the Windows "ioctl 90073" immediately prior the crash is FSCTL_GET_RETRIEVAL_POINTERS via: http://msdn.microsoft.com/en-us/library/cc232013%28PROT.13%29.aspx
With more information on FSCTL_GET_RETRIEVAL_POINTERS found at: http://msdn.microsoft.com/en-us/library/aa364572%28VS.85%29.aspx
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #12 from Hans Leidekker hans@meelstraat.net 2010-08-18 13:24:29 ---
I could not verify your assertion that the custom action noted is DefragmentFiles. How do you know the custom action is called DefragmentFiles and where may I find more information about it?
Generate a +tid,+seh,+relay,+msi trace and find the exception. Take note of the thread id. Then search for the first line generated from that thread. Just above that is where msi creates the thread to run the custom action and logs the custom action name.
DefragmentFiles is a custom action written by Adobe, not a standard action, so it's probably not documented anywhere.
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #13 from rusivi rusivi1@gmail.com 2010-08-20 00:18:30 --- Created an attachment (id=30229) --> (http://bugs.winehq.org/attachment.cgi?id=30229) WINEDEBUG=+relay,+tid,+seh,+msi wine AdbeRdr90_en_US.exe >>log.txt 2&>1
Performed a trace install through all dialogue boxes clicked via:
WINEDEBUG=+relay,+tid,+seh,+msi wine AdbeRdr90_en_US.exe >>log.txt 2&>1
I found where DefragmentFiles was called as close to the backtrace as possible, took a few thousand lines prior (starting at line 35264316), as well as a few hundred after the stack dump (ending at line 35271000) and attached it. The original file is 36830321 lines long, 2.8GB in size.
I did notice instances of DefragmentFiles as early as line 7896575 which suggests that it is checking for defragmentation throughout the install process. Makes a lot of sense to do so. However, I haven't figured out how towards the end of the install the DefragmentFiles custom action is causing the divide by zero error.
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #14 from rusivi rusivi1@gmail.com 2010-08-20 00:26:47 --- Forgot to mention attachement was produced via newest stable wine:
apt-cache policy wine1.3 wine1.3: Installed: 1.3.0-0ubuntu3 Candidate: 1.3.0-0ubuntu3 Version table: *** 1.3.0-0ubuntu3 0 500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ lucid/main Packages 100 /var/lib/dpkg/status
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #15 from rusivi rusivi1@gmail.com 2010-08-21 01:13:03 --- Created an attachment (id=30255) --> (http://bugs.winehq.org/attachment.cgi?id=30255) wine1.3.1: WINEDEBUG=+relay,+tid,+seh,+msi wine AdbeRdr90_en_US.exe >>log.txt 2&>1
Compiled newest dev wine from source, same divide by zero error, took 1000 lines after backtrace, and 5000 prior.
apt-cache policy wine wine: Installed: 1.3.1-1 Candidate: 1.3.1-1 Version table: *** 1.3.1-1 0 100 /var/lib/dpkg/status 1.2-0ubuntu1~lucidppa1 0 500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ lucid/main Packages 1.1.42-0ubuntu4 0 500 http://us.archive.ubuntu.com/ubuntu/ lucid/universe Packages
http://bugs.winehq.org/show_bug.cgi?id=18958
--- Comment #16 from rusivi rusivi1@gmail.com 2010-09-06 00:04:17 CDT --- Created an attachment (id=30594) --> (http://bugs.winehq.org/attachment.cgi?id=30594) wine1.3.2: wine AdbeRdr90_en_US.exe >>log.txt 2&>1
Compiled wine1.3.2 from source, ran it twice, first time got some strange install error, ran again, got divide by zero error.
lsb_release -rd Description: Ubuntu maverick (development branch) Release: 10.10
apt-cache policy wine wine: Installed: 1.3.2-1 Candidate: 1.3.2-1 Version table: *** 1.3.2-1 0 100 /var/lib/dpkg/status 1.2-0ubuntu2 0 500 http://us.archive.ubuntu.com/ubuntu/ maverick/universe i386 Packages
http://bugs.winehq.org/show_bug.cgi?id=18958
Saulius K. saulius2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |saulius2@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=18958
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #17 from Austin English austinenglish@gmail.com 2010-11-23 12:31:05 CST --- Fixed by http://source.winehq.org/git/wine.git/?a=commitdiff;h=63c19ab495ae31b83ad5d8...
toward the end of the install it (twice) complains that you can't run more than one instance of the program at a time, but it seems harmless.
http://bugs.winehq.org/show_bug.cgi?id=18958
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #18 from Alexandre Julliard julliard@winehq.org 2010-11-26 13:14:47 CST --- Closing bugs fixed in 1.3.8.
http://bugs.winehq.org/show_bug.cgi?id=18958
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.2.x
http://bugs.winehq.org/show_bug.cgi?id=18958
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.2.x |---
--- Comment #19 from Alexandre Julliard julliard@winehq.org 2010-12-03 12:51:51 CST --- Removing 1.2.x milestone from bugs included in 1.2.2.
http://bugs.winehq.org/show_bug.cgi?id=18958
Hans Leidekker hans@meelstraat.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |63c19ab495ae31b83ad5d86a8fe | |9e54a09735c29