[Bug 45070] New: closing threads causes "wine client error" and kills process when run under winedbg --gdb

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Apr 26 18:34:43 CDT 2018


https://bugs.winehq.org/show_bug.cgi?id=45070

            Bug ID: 45070
           Summary: closing threads causes "wine client error" and kills
                    process when run under winedbg --gdb
           Product: Wine
           Version: 3.6
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: winedbg
          Assignee: wine-bugs at winehq.org
          Reporter: z.figura12 at gmail.com
      Distribution: ---

Created attachment 61208
  --> https://bugs.winehq.org/attachment.cgi?id=61208
test program showing problem

When run under winedbg in gdb mode, closing a thread consistently causes 'wine
client error:30: write: Bad file descriptor', aborting the program.

The basic problem seems to be that gdb will inject breakpoints into dlopen() to
allow hooking that function if desired. Normally this works fine, but this can
also be triggered during thread teardown, i.e. inside of pthread_exit(). In
this case we catch the SIGTRAP, but abort when we try to pass it along to
wineserver, since we've already closed our file handle to the server pipe.

The obvious solution seems to be to block SIGTRAP during thread shutdown.
Attempting this makes the 'bad file descriptor' message go away, but the
process still gets killed prematurely. I haven't figured out why.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list