Bug 187429 - Wine segfaults on FC5 x86_64
Wine segfaults on FC5 x86_64
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: wine (Show other bugs)
5
x86_64 Linux
medium Severity high
: ---
: ---
Assigned To: Andreas Bierfert
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-03-30 15:59 EST by Joel Gomberg
Modified: 2007-11-30 17:11 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-04-15 13:00:42 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Strace output with wine run without arguments. When run with arguments, there are many segfault lines. I can also send that file. (37.88 KB, text/plain)
2006-03-31 09:04 EST, Joel Gomberg
no flags Details
This is strace output when wine is invoked with an argument. (37.62 KB, text/plain)
2006-03-31 09:06 EST, Joel Gomberg
no flags Details

  None (edit)
Description Joel Gomberg 2006-03-30 15:59:48 EST
Description of problem

Attempting to run wine results in almost immediate 100% CPU use by
wine-preloader, which must then be killed.  Running wine <no argument> displays
the help screen, as expected.  There is no output when attempting to run any
program.


Version-Release number of selected component (if applicable):

0.99.10-2.fc5 [although the same behavior is noted with earlier versions,
including a 2005 version from WineHQ which ran perfectly on FC4 x86_64.


How reproducible:

Run wine with or without arguments


Steps to Reproduce:
1. type "wine" in a terminal.
2.
3.
  
Actual results:

Wine without arguments displays the help screen, but the attached strace output
is abnormal.  Wine with arguments hangs the command line.  Wine-preloader must
then be killed.


Expected results:

Wine executes the requested program.


Additional info:
Comment 1 Paul F. Johnson 2006-03-30 17:06:03 EST
On current rawhide kernels, it is possible to completely kill the machine when
running programs compiled for Win95.

Prime example URL

http://www.geocities.com/athens/academy/1974/nadsat.html - download the program
and try and run.
Comment 2 Andreas Bierfert 2006-03-31 03:06:35 EST
I will try that tonight ...

Joel: Could you attach your strace output? Thanks
Comment 3 Joel Gomberg 2006-03-31 09:04:30 EST
Created attachment 127125 [details]
Strace output with wine run without arguments.  When run with arguments, there are many segfault lines.  I can also send that file.

Here is the requested strace output, which I thought a had attached yesterday.
Comment 4 Joel Gomberg 2006-03-31 09:06:17 EST
Created attachment 127126 [details]
This is strace output when wine is invoked with an argument.
Comment 5 Joel Gomberg 2006-03-31 09:41:21 EST
In looking through the strace output, it appears that wine is expecting a number
of files in the /lib directory that don't exist on my system and are not found
with a "yum whatprovides" query on my enabled x86_64 repositories:

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/usr/bin/../lib/tls/i686/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/bin/../lib/tls/i686/libwine.so.1", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/libwine.so.1", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/i686/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/i686/libwine.so.1", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No such file or
directory)

...

open("/usr/bin/../lib/tls/i686/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/bin/../lib/tls/i686/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/i686/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/i686/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)

How can I determine what RPMs I need from the i386 repository and why didn't
wine fail the transaction check or test?
Comment 6 Andreas Bierfert 2006-03-31 10:25:30 EST
Ah... that actually gives me a clue :) I will work on it this weekend. Thanks
for the information.
Comment 7 Andreas Bierfert 2006-04-03 04:46:20 EDT
Hm seems like failing is ok as open("/etc/ld.so.cache", O_RDONLY)      = 3
should do what wine wants.

Please try to move your .wine directory out of the way and try with a fresh one
(will be created on first run). That might do the trick (or try wineprefixcreate)
as here it works just like a charm on x86_64 with autodeps
Comment 8 Joel Gomberg 2006-04-03 11:40:44 EDT
I had already tried this approach.  It still fails.  Running wine generates an
input/output error when wine-preloader is called:

[joel@alcibiades ~]$ strace wine
execve("/usr/bin/wine", ["wine"], [/* 35 vars */]) = 0
[ Process PID=3670 runs in 32 bit mode. ]
brk(0)                                  = 0x804b000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xfffffffff7ffd000
readlink("/proc/self/exe", "/usr/bin/wine", 4096) = 13
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/usr/bin/../lib/tls/i686/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/bin/../lib/tls/i686/libwine.so.1", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/libwine.so.1", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/i686/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/i686/libwine.so.1", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/sse2/libwine.so.1", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/libwine.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\231"..., 512) =
512fstat64(0x3, 0xffffcc80)                = 0
mmap2(0xb68000, 109120, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb68000
mmap2(0xb6f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE,
3, 0x6) = 0xb6f000
mmap2(0xb70000, 76352, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb70000
close(3)                                = 0
open("/usr/bin/../lib/tls/i686/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/bin/../lib/tls/i686/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/i686/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/i686/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/sse2/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(0x3, 0xffffcbe0)                = 0
mmap2(NULL, 257294, PROT_READ, MAP_PRIVATE, 3, 0) = 0xfffffffff7fbe000
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\232\271"..., 512) = 512
fstat64(0x3, 0xffffcc64)                = 0
mmap2(0xb95000, 78268, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb95000
mmap2(0xba5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE,
3, 0xf) = 0xba5000
mmap2(0xba7000, 4540, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
-1, 0) = 0xba7000
close(3)                                = 0
open("/usr/bin/../lib/tls/i686/sse2/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/tls/sse2/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/i686/sse2/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/sse2/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\n\211\244"..., 512) = 512
fstat64(0x3, 0xffffcc48)                = 0
mmap2(0xa33000, 1254780, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xa33000
mmap2(0xb5f000, 16384, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12b) = 0xb5f000
mmap2(0xb63000, 9596, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
-1, 0) = 0xb63000
close(3)                                = 0
open("/usr/bin/../lib/tls/i686/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/i686/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/tls/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/tls/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/i686/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/i686/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/bin/../lib/tls/i686/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/bin/../lib/tls/i686/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/tls/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/tls/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/i686/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/usr/bin/../lib/i686/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/sse2/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/bin/../lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY)       = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\374\270"..., 512) = 512
fstat64(0x3, 0xffffcbac)                = 0
mmap2(0xb8f000, 12412, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0xb8f000
mmap2(0xb91000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE,
3, 0x1) = 0xb91000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xfffffffff7fbd000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xfffffffff7fbc000
set_thread_area(0xffffd158)             = 0
mprotect(0xba5000, 4096, PROT_READ)     = 0
mprotect(0xb5f000, 12288, PROT_READ)    = 0
mprotect(0xb91000, 4096, PROT_READ)     = 0
mprotect(0x1bf000, 4096, PROT_READ)     = 0
munmap(0xf7fbe000, 257294)              = 0
set_tid_address(0xf7fbc6f8)             = 3670
rt_sigaction(SIGRTMIN, {0x400b99686, [], 0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x1000000400b995c0, [], 0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=-4284481536, rlim_max=67108864*1024}) = 0
_sysctl({0x200ba1e04, -11600, (nil), (nil), (nil), 17869094388571463668}) = 0
mmap2(NULL, 10489856, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0xa01000) = 0xfffffffff75bb000
brk(0)                                  = 0x804b000
brk(0x806c000)                          = 0x806c000
mprotect(0xf75bb000, 4096, PROT_NONE)   = 0
clone(child_stack=0xf7fbb4d4,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,
parent_tidptr=0xf7fbbbe8, tls=0xf7fbbbe8, child_tidptr=0xffffd4ec) = 3671
futex(0xf7fbbbe8, FUTEX_WAIT, 3671, NULL) = 0
execve("/usr/bin/../lib/../bin/wine-preloader", [umovestr: Input/output error
0x804b1300804b158, umovestr: Input/output error
0x20e7100000000], [/* 35 vars */]) = 0

Running wineprefixcreate actually does create the .wine structure, but it hangs
at line 205:

"${WINELOADER:-wine}" rundll32.exe setupapi.dll,InstallHinfSection
DefaultInstall 128 wine.inf

I'm assuming that my problem relates in some way to doing an FC4->FC5 upgrade
rather than a fresh install.  Perhaps some files were not updated or some older
files have been left behind, creating some sort of conflict.  I'd appreciate it
if you could suggest where I might look for the cause, but it does appear that
this is not a wine bug.  Thanks for your help.
Comment 9 Joel Gomberg 2006-04-04 14:04:02 EDT
FWIW, I managed to build wine-0.9.10 from source and it works! I still have no
idea why the RPMs failed.
Comment 10 Joel Gomberg 2006-04-15 13:00:42 EDT
I have finally tracked down the root cause of these memory conflicts:  the
proprietary Nvidia driver.  I recently came across a warning against using
Nvidia's installer on the fedora-devel list:

https://www.redhat.com/archives/fedora-devel-list/2006-February/msg01178.html

I had tried -- and failed -- to run wine with the "nv" driver enabled, but
hadn't realized that merely having the driver on my system could cause problems.
 After uninstalling the driver and installing the livna rpms, the problems have
disappeared.
Comment 11 Paul F. Johnson 2006-04-15 15:25:31 EDT
Nope. I'm not using the proprietary nv driver, just the bog standard xorg one
(I've no need for 3D stuff so don't bother with it).

Keep looking :-(

Note You need to log in before you can comment on or make changes to this bug.