Hi!

----

Running the git testsuite I got a hang of the
"t1004-read-tree-m-u-wf.sh" test in Cygwin 3.7 - the same test worked
AFAIK OK with Cygwin 3.5.x.

My guess: |wait_sig()| and |_sigfe()| are involved, maybe this is a
signal issue..

1. Versions: Cygwin 3.7.0-0.68.g37c49decc835.x86_64 / Windows 10
2. Steps to reproduce:
---- snip ----
mkdir gittest
cd gittest/
git clone -b 'v2.45.1' https://github.com/git/git.git
cd git
autoconf
automake
CC="gcc -std=gnu17" ./configure
time make -j4 all
time nice make -i test
---- snip ----

Process "git merge-recursive branch-point -- side-b side-a" launched
by "/bin/sh t1004-read-tree-m-u-wf.sh" hangs forever with this stack
trace:
---- snip ----
(gdb) thread apply all bt

Thread 4 (Thread 8148.0xb64):
#0  0x00007ffe68f91021 in ntdll!DbgBreakPoint () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#1  0x00007ffe68fbca7e in ntdll!DbgUiRemoteBreakin () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#2  0x00007ffe66f17374 in KERNEL32!BaseThreadInitThunk () from
/cygdrive/c/Windows/System32/KERNEL32.DLL
#3  0x00007ffe68f3cc91 in ntdll!RtlUserThreadStart () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 3 (Thread 8148.0x1238 "commune"):
#0  0x00007ffe68f8d574 in ntdll!ZwWaitForSingleObject () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#1  0x00007ffe66b4920e in WaitForSingleObjectEx () from
/cygdrive/c/Windows/System32/KERNELBASE.dll
#2  0x00007ffe333c5a82 in cygthread::stub
(arg=arg@entry=0x7ffe335b6618 <threads+88>) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/cygthread.cc:194
#3  0x00007ffe333c6555 in _cygtls::call2 (this=0x5fce00,
func=0x7ffe333c59de <cygthread::stub(void*)>, arg=0x7ffe335b6618
<threads+88>, buf=buf@entry=0x5fcd20) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/cygtls.cc:41
#4  0x00007ffe333c660a in _cygtls::call (func=<optimized out>,
arg=<optimized out>) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/cygtls.cc:28
#5  0x00007ffe66f17374 in KERNEL32!BaseThreadInitThunk () from
/cygdrive/c/Windows/System32/KERNEL32.DLL
#6  0x00007ffe68f3cc91 in ntdll!RtlUserThreadStart () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 8148.0xcb8 "sig"):
#0  0x00007ffe68f8d5b4 in ntdll!ZwReadFile () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#1  0x00007ffe66b526e3 in ReadFile () from
/cygdrive/c/Windows/System32/KERNELBASE.dll
#2  0x00007ffe3343d23b in wait_sig () at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/sigproc.cc:1485
#3  0x00007ffe333c5560 in cygthread::callfunc
(this=this@entry=0x7ffe335b65c0 <threads>,
issimplestub=issimplestub@entry=false) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/cygthread.cc:130
#4  0x00007ffe333c5a47 in cygthread::stub
(arg=arg@entry=0x7ffe335b65c0 <threads>) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/cygthread.cc:173
#5  0x00007ffe333c6555 in _cygtls::call2 (this=0x123ce00,
func=0x7ffe333c59de <cygthread::stub(void*)>, arg=0x7ffe335b65c0
<threads>, buf=buf@entry=0x123cd20) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/cygtls.cc:41
#6  0x00007ffe333c660a in _cygtls::call (func=<optimized out>,
arg=<optimized out>) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/cygtls.cc:28
#7  0x00007ffe66f17374 in KERNEL32!BaseThreadInitThunk () from
/cygdrive/c/Windows/System32/KERNEL32.DLL
#8  0x00007ffe68f3cc91 in ntdll!RtlUserThreadStart () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#9  0x0000000000000000 in ?? ()

Thread 1 (Thread 8148.0x28c0 "git"):
#0  0x00007ffe68f8db54 in ntdll!ZwOpenFile () from
/cygdrive/c/Windows/SYSTEM32/ntdll.dll
#1  0x00007ffe3340fdfe in symlink_info::check
(this=this@entry=0x7ffffafd0, path=path@entry=0x1460760
"L:\\builds\\bash_build1\\gitbuild\\git\\t\\trash
directory.t1004-read-tree-m-u-wf\\subdir\\file2\\another~side-a_549878",
suffixes=suffixes@entry=0x7ffe336db1c0 <stat_suffixes>, fs=...,
conv_hdl=...) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/path.cc:3332
#2  0x00007ffe33412de4 in path_conv::check
(this=this@entry=0x7ffffc080, src=<optimized out>,
src@entry=0xa0001ec20 "subdir/file2/another~side-a_549878",
opt=opt@entry=4258, suffixes=0x7ffe336db1c0 <stat_suffixes>) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/path.cc:982
#3  0x00007ffe3345029f in path_conv::path_conv (suffixes=<optimized
out>, opt=4226, src=0xa0001ec20 "subdir/file2/another~side-a_549878",
this=0x7ffffc080) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/local_includes/path.h:312
#4  lstat(const char * __restrict__, stat * __restrict__)
(name=0xa0001ec20 "subdir/file2/another~side-a_549878",
buf=0x7ffffc210) at
/usr/src/debug/cygwin-3.7.0-0.68.g37c49decc835/winsup/cygwin/syscalls.cc:2153
#5  0x00007ffe3350ca64 in _sigfe () at sigfe.s:35
#6  0x0000000100557181 in file_exists (f=<optimized out>) at dir.c:3104
#7  0x00000001005971ba in unique_path (opt=opt@entry=0x7ffffc7e0,
path=path@entry=0xa00023fb0 "subdir/file2/another",
branch=branch@entry=0xa00003570 "side-a") at merge-recursive.c:750
#8  0x000000010059db19 in process_entry (opt=0x7ffffc7e0,
path=0xa00023fb0 "subdir/file2/another", entry=0xa0001cf10) at
merge-recursive.c:3474
#9  merge_trees_internal (opt=opt@entry=0x7ffffc7e0, head=<optimized
out>, merge=<optimized out>, merge@entry=0xa00036228,
merge_base=<optimized out>, merge_base@entry=0xa00036260,
result=<optimized out>, result@entry=0x7ffffc5e8) at
merge-recursive.c:3580
#10 0x000000010059ebe6 in merge_recursive_internal
(opt=opt@entry=0x7ffffc7e0, h1=h1@entry=0xa000241e0,
h2=h2@entry=0xa00024270, merge_bases=<optimized out>,
merge_bases@entry=0xa00020390, result=result@entry=0x7ffffc778) at
merge-recursive.c:3723
#11 0x000000010059ee67 in merge_recursive (opt=opt@entry=0x7ffffc7e0,
h1=h1@entry=0xa000241e0, h2=h2@entry=0xa00024270,
merge_bases=0xa00020390, result=result@entry=0x7ffffc778) at
merge-recursive.c:3834
#12 0x000000010059efcc in merge_recursive_generic
(opt=opt@entry=0x7ffffc7e0, head=head@entry=0x7ffffc780,
merge=merge@entry=0x7ffffc7b0,
num_merge_bases=num_merge_bases@entry=1,
merge_bases=merge_bases@entry=0x7ffffc870,
result=result@entry=0x7ffffc778) at merge-recursive.c:3887
#13 0x0000000100470e04 in cmd_merge_recursive (argc=<optimized out>,
argv=0xa000006c8, prefix=<optimized out>) at
builtin/merge-recursive.c:85
#14 0x0000000100401246 in run_builtin (p=0x1006b46e0 <commands+1728>,
argc=5, argv=0xa000006c8) at git.c:469
#15 handle_builtin (argc=5, argv=argv@entry=0xa000006c8) at git.c:724
#16 0x000000010040261c in run_argv (argcp=0x7ffffcbe0,
argv=0x7ffffcbe8) at git.c:788
#17 cmd_main (argc=<optimized out>, argc@entry=6, argv=<optimized
out>, argv@entry=0xa000006c0) at git.c:923
#18 0x00000001006b2ffc in main (argc=6, argv=0xa000006c0) at common-main.c:62
---- snip ----

Can the Cygwin signal gurus please have a look ?

----

Bye,
Roland
-- 
  __ .  . __
 (o.\ \/ /.o) roland.ma...@nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to