bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] Small bug in tar-1.29


From: Jack Howarth
Subject: Re: [Bug-tar] Small bug in tar-1.29
Date: Tue, 6 Sep 2016 18:16:56 -0400
User-agent: Mutt/1.5.18 (2008-05-17)

On Tue, Sep 06, 2016 at 04:12:12PM -0400, Jack Howarth wrote:
> On Tue, Sep 06, 2016 at 08:12:05PM +0100, Ralph Corderoy wrote:
> > Hi Jack,
> > 
> > > > gnutar: Child died with signal 11
> > ...
> > > stop reason = signal SIGPIPE
> > 
> > SIGPIPE is 13.  We want 11, SIGSEGV.  Perhaps a "c" or two for continue
> > will have the debugger carry on until the SEGV bites.
> 
> $ ulimit -c unlimited
> $ gnutar -zcvf test_data.tar.gz test_data 
> test_data/
> test_data/.noe.tbl.swp
> test_data/dihedral.tbl
> test_data/file.nam
> test_data/io.mc
> test_data/noe.tbl
> gnutar: test_data.tar.gz: Cannot write: Broken pipe
> gnutar: Child died with signal 11
> gnutar: Error is not recoverable: exiting now
> $ lldb -c /cores/core.21601 `which gnutar`
> (lldb) target create "/opt/local/bin/gnutar" --core "/cores/core.21601"
> warning: (x86_64) /cores/core.21601 load command 84 LC_SEGMENT_64 has a 
> fileoff + filesize (0x296fe000) that extends beyond the end of the file 
> (0x296fd000), the segment will be truncated to match
> Core file '/cores/core.21601' (x86_64) was loaded.
> (lldb) bt
> * thread #1: tid = 0x0000, 0x00007fff94ebb6d7 
> libdispatch.dylib`_dispatch_queue_push_queue + 463, stop reason = signal 
> SIGSTOP
>   * frame #0: 0x00007fff94ebb6d7 libdispatch.dylib`_dispatch_queue_push_queue 
> + 463
>     frame #1: 0x00007fff7478c4d0 libdispatch.dylib`_OS_dispatch_mach_vtable + 
> 48
>     frame #2: 0x00007fff94eb9b06 
> libdispatch.dylib`_dispatch_queue_wakeup_with_qos_slow + 126
>     frame #3: 0x00007fff94ec013f libdispatch.dylib`_dispatch_mach_msg_send + 
> 1952
>     frame #4: 0x00007fff94ebf8dc libdispatch.dylib`dispatch_mach_send + 262
>     frame #5: 0x00007fff89448fc9 
> libxpc.dylib`xpc_connection_send_message_with_reply + 131
>     frame #6: 0x00007fff8e31ebdf CoreFoundation`__66-[CFPrefsSearchListSource 
> generationCountFromListOfSources:count:]_block_invoke_2 + 143
>     frame #7: 0x00007fff8e31ea0d CoreFoundation`_CFPrefsWithDaemonConnection 
> + 381
>     frame #8: 0x00007fff8e31db96 CoreFoundation`__66-[CFPrefsSearchListSource 
> generationCountFromListOfSources:count:]_block_invoke + 150
>     frame #9: 0x00007fff8e31d933 CoreFoundation`-[CFPrefsSearchListSource 
> generationCountFromListOfSources:count:] + 179
>     frame #10: 0x00007fff8e31d214 CoreFoundation`-[CFPrefsSearchListSource 
> alreadylocked_copyDictionary] + 324
>     frame #11: 0x00007fff8e31ce5c CoreFoundation`-[CFPrefsSearchListSource 
> alreadylocked_copyValueForKey:] + 60
>     frame #12: 0x00007fff8e31cdec 
> CoreFoundation`___CFPreferencesCopyAppValueWithContainer_block_invoke + 60
>     frame #13: 0x00007fff8e314b10 CoreFoundation`+[CFPrefsSearchListSource 
> withSearchListForIdentifier:container:perform:] + 608
>     frame #14: 0x00007fff8e314867 
> CoreFoundation`_CFPreferencesCopyAppValueWithContainer + 183
>     frame #15: 0x00000001021a6538 
> libintl.8.dylib`_nl_language_preferences_default + 70
>     frame #16: 0x00000001021a462f libintl.8.dylib`libintl_dcigettext + 667
>     frame #17: 0x00000001021491f2 gnutar`sys_child_open_for_compress + 125
>     frame #18: 0x000000010213011f gnutar`open_archive + 603
>     frame #19: 0x00000001021355ab gnutar`create_archive + 67
>     frame #20: 0x000000010214b494 gnutar`main + 3510
>     frame #21: 0x00007fff895605ad libdyld.dylib`start + 1
>     frame #22: 0x00007fff895605ad libdyld.dylib`start + 1
> (lldb)
> 

I also confirmed that this issue doesn't exist in tar 1.28. The fact that the 
backtrace for the crash seems to go
through CoreFoundation reinforces my suspicion the problem is a thread not 
being locked properly. We had a
problem with random failures in make 4.0/4.1 when executed within the fink 
packaging manager that could be 
suppressed by building make with '--disable-nls' to avoid the threading in the 
CoreFoundation framework.
Upstream fixed this in make 4.2.1 with....

http://git.savannah.gnu.org/cgit/make.git/commit/?id=85c788572d054bc2c41b84007875edbd37ad3ed5

http://savannah.gnu.org/bugs/?46261#comment12

by using pselect() to lock the thread. Perhaps something similar needs to be 
done for the xpipe calls in tar 1.29?

> 
> > 
> > -- 
> > Cheers, Ralph.
> > https://plus.google.com/+RalphCorderoy



reply via email to

[Prev in Thread] Current Thread [Next in Thread]