https://bz.mercurial-scm.org/show_bug.cgi?id=5814

            Bug ID: 5814
           Summary: 4.5.2: test hang on NetBSD
           Product: Mercurial
           Version: 4.5.2
          Hardware: PC
                OS: Mac OS
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzi...@mercurial-scm.org
          Reporter: t...@giga.or.at
                CC: mercurial-devel@mercurial-scm.org

New in 4.5.2 (not in 4.5.0) I see a test hang, i.e. it has been using 99% CPU
for 45 minutes now and is still going.

Test output is this:

cd tests && /usr/pkg/bin/python2.7 run-tests.py -j4
ss......s.......................s...s..sss..s..s...sss.s...ss.ss...s.........s...............s.s..s..s.......s......s.s..s...........s......................s..........................
--- /scratch/devel/py-mercurial/work/mercurial-4.5.2/tests/test-status-color.t
+++
/scratch/devel/py-mercurial/work/mercurial-4.5.2/tests/test-status-color.t.err
@@ -243,15 +243,18 @@
   $ mkdir "$TESTTMP/terminfo"
   $ TERMINFO="$TESTTMP/terminfo" tic "$TESTDIR/hgterm.ti"
   $ TERM=hgterm TERMINFO="$TESTTMP/terminfo" hg status --config
color.mode=terminfo -A
-  \x1b[30m\x1b[32m\x1b[1mA \x1b[30m\x1b[30m\x1b[32m\x1b[1madded\x1b[30m (esc)
-  \x1b[30m\x1b[32m\x1b[1mA \x1b[30m\x1b[30m\x1b[32m\x1b[1mcopied\x1b[30m (esc)
-  \x1b[30m\x1b[30m  modified\x1b[30m (esc)
-  \x1b[30m\x1b[31m\x1b[1mR \x1b[30m\x1b[30m\x1b[31m\x1b[1mremoved\x1b[30m
(esc)
-  \x1b[30m\x1b[36m\x1b[1m\x1b[4m!
\x1b[30m\x1b[30m\x1b[36m\x1b[1m\x1b[4mdeleted\x1b[30m (esc)
-  \x1b[30m\x1b[35m\x1b[1m\x1b[4m?
\x1b[30m\x1b[30m\x1b[35m\x1b[1m\x1b[4munknown\x1b[30m (esc)
-  \x1b[30m\x1b[30m\x1b[1mI \x1b[30m\x1b[30m\x1b[30m\x1b[1mignored\x1b[30m
(esc)
-  \x1b[30m\x1b[30mC \x1b[30m\x1b[30m\x1b[30m.hgignore\x1b[30m (esc)
-  \x1b[30m\x1b[30mC \x1b[30m\x1b[30m\x1b[30mmodified\x1b[30m (esc)
+  warning: failed to set color mode to terminfo
+  warning: failed to set color mode to terminfo
+  warning: failed to set color mode to terminfo
+  \x1b[0;32;1mA \x1b[0m\x1b[0;32;1madded\x1b[0m (esc)
+  \x1b[0;32;1mA \x1b[0m\x1b[0;32;1mcopied\x1b[0m (esc)
+  \x1b[0;0m  modified\x1b[0m (esc)
+  \x1b[0;31;1mR \x1b[0m\x1b[0;31;1mremoved\x1b[0m (esc)
+  \x1b[0;36;1;4m! \x1b[0m\x1b[0;36;1;4mdeleted\x1b[0m (esc)
+  \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4munknown\x1b[0m (esc)
+  \x1b[0;30;1mI \x1b[0m\x1b[0;30;1mignored\x1b[0m (esc)
+  \x1b[0;0mC \x1b[0m\x1b[0;0m.hgignore\x1b[0m (esc)
+  \x1b[0;0mC \x1b[0m\x1b[0;0mmodified\x1b[0m (esc)

 The user can define effects with raw terminfo codes:

@@ -262,15 +265,18 @@
   > terminfo.bold = \E[2m
   > EOF
   $ TERM=hgterm TERMINFO="$TESTTMP/terminfo" hg status --config
color.mode=terminfo --config color.status.clean=dim -A
-  \x1b[30m\x1b[32m\x1b[2mA \x1b[30m\x1b[30m\x1b[32m\x1b[2madded\x1b[30m (esc)
-  \x1b[30m\x1b[32m\x1b[2mA \x1b[30m\x1b[30m\x1b[32m\x1b[2mcopied\x1b[30m (esc)
-  \x1b[30m\x1b[30m  modified\x1b[30m (esc)
-  \x1b[30m\x1b[31m\x1b[2mR \x1b[30m\x1b[30m\x1b[31m\x1b[2mremoved\x1b[30m
(esc)
-  \x1b[30m\x1b[36m\x1b[2m\x1b[4m!
\x1b[30m\x1b[30m\x1b[36m\x1b[2m\x1b[4mdeleted\x1b[30m (esc)
-  \x1b[30m\x1b[35m\x1b[2m\x1b[4m?
\x1b[30m\x1b[30m\x1b[35m\x1b[2m\x1b[4munknown\x1b[30m (esc)
-  \x1b[30m\x1b[30m\x1b[2mI \x1b[30m\x1b[30m\x1b[30m\x1b[2mignored\x1b[30m
(esc)
-  \x1b[30m\x1b[88mC \x1b[30m\x1b[30m\x1b[88m.hgignore\x1b[30m (esc)
-  \x1b[30m\x1b[88mC \x1b[30m\x1b[30m\x1b[88mmodified\x1b[30m (esc)
+  warning: failed to set color mode to terminfo
+  warning: failed to set color mode to terminfo
+  warning: failed to set color mode to terminfo
+  \x1b[0;32;1mA \x1b[0m\x1b[0;32;1madded\x1b[0m (esc)
+  \x1b[0;32;1mA \x1b[0m\x1b[0;32;1mcopied\x1b[0m (esc)
+  \x1b[0;0m  modified\x1b[0m (esc)
+  \x1b[0;31;1mR \x1b[0m\x1b[0;31;1mremoved\x1b[0m (esc)
+  \x1b[0;36;1;4m! \x1b[0m\x1b[0;36;1;4mdeleted\x1b[0m (esc)
+  \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4munknown\x1b[0m (esc)
+  \x1b[0;30;1mI \x1b[0m\x1b[0;30;1mignored\x1b[0m (esc)
+  \x1b[0;2mC \x1b[0m\x1b[0;2m.hgignore\x1b[0m (esc)
+  \x1b[0;2mC \x1b[0m\x1b[0;2mmodified\x1b[0m (esc)

 #endif


ERROR: test-status-color.t output changed
!...........s...............s.....s................................sss....ssssss...s................s...........s.........s...s............................s.s.......s............s.............s.s...............

After that dot nothing happened because the test is stuck.

Attaching to the python process with gdb, I see:

#0  0x00007b734d208722 in pthread__mutex_pause () at
/disk/6/archive/foreign/src/lib/libpthread/pthread_mutex.c:227
#1  0x00007b734d208779 in pthread__mutex_spin (ptm=ptm@entry=0x7b734e20d700,
owner=<optimized out>, owner@entry=0x7b7345f10000)
    at /disk/6/archive/foreign/src/lib/libpthread/pthread_mutex.c:253
#2  0x00007b734d208a9d in pthread__mutex_lock_slow (ptm=0x7b734e20d700, ts=0x0)
at /disk/6/archive/foreign/src/lib/libpthread/pthread_mutex.c:343
#3  0x00007b734ceb7cd4 in arena_dalloc (ptr=0x7b7341401060, chunk=<optimized
out>, arena=0x7b734e20d700) at
/disk/6/archive/foreign/src/lib/libc/stdlib/jemalloc.c:2599
#4  idalloc (ptr=0x7b7341401060) at
/disk/6/archive/foreign/src/lib/libc/stdlib/jemalloc.c:3271
#5  0x00007b734ceb934b in free (ptr=0x7b7341401060) at
/disk/6/archive/foreign/src/lib/libc/stdlib/jemalloc.c:3948
#6  0x00007b734df1fdd5 in PyThread_ReInitTLS () at Python/thread.c:413
#7  0x00007b734df26719 in PyOS_AfterFork () at ./Modules/signalmodule.c:1008
#8  0x00007b734df2b7e0 in posix_fork (self=<optimized out>, noargs=<optimized
out>) at ./Modules/posixmodule.c:3897
#9  0x00007b734deee37b in call_function (oparg=<optimized out>,
pp_stack=0x7b73449fdff8) at Python/ceval.c:4341
#10 PyEval_EvalFrameEx (f=f@entry=0x7b7344101420, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#11 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b734440ce68, argcount=18, kws=<optimized out>, 
    kwcount=kwcount@entry=0, defs=0x0, defcount=0, closure=0x0) at
Python/ceval.c:3589
#12 0x00007b734deee15b in fast_function (nk=0, na=<optimized out>, n=18,
pp_stack=0x7b73449fe218, func=0x7b734d8fc848) at Python/ceval.c:4452
#13 call_function (oparg=<optimized out>, pp_stack=0x7b73449fe218) at
Python/ceval.c:4377
#14 PyEval_EvalFrameEx (f=f@entry=0x7b734440cc20, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#15 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b73466652f0, argcount=2, 
    kws=kws@entry=0x7b734d86b348, kwcount=kwcount@entry=8,
defs=defs@entry=0x7b734d8fd068, defcount=defcount@entry=13, closure=0x0) at
Python/ceval.c:3589
#16 0x00007b734de72125 in function_call (func=0x7b734d8fc410,
arg=0x7b73466652d8, kw=0x7b73486f2e88) at Objects/funcobject.c:523
#17 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734d8fc410,
arg=arg@entry=0x7b73466652d8, kw=kw@entry=0x7b73486f2e88) at
Objects/abstract.c:2547
#18 0x00007b734de59a3b in instancemethod_call (func=0x7b734d8fc410,
arg=0x7b73466652d8, kw=0x7b73486f2e88) at Objects/classobject.c:2602
#19 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b73466e3a00,
arg=arg@entry=0x7b7346687050, kw=kw@entry=0x7b73486f2e88) at
Objects/abstract.c:2547
#20 0x00007b734deab83a in slot_tp_init (self=<optimized out>,
args=0x7b7346687050, kwds=0x7b73486f2e88) at Objects/typeobject.c:5860
#21 0x00007b734dea7a12 in type_call (type=<optimized out>, args=0x7b7346687050,
kwds=0x7b73486f2e88) at Objects/typeobject.c:765
#22 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734c136420,
arg=arg@entry=0x7b7346687050, kw=kw@entry=0x7b73486f2e88) at
Objects/abstract.c:2547
#23 0x00007b734dee9183 in do_call (nk=8, na=<optimized out>,
pp_stack=0x7b73449fe6b8, func=0x7b734c136420) at Python/ceval.c:4574
#24 call_function (oparg=<optimized out>, pp_stack=0x7b73449fe6b8) at
Python/ceval.c:4379
#25 PyEval_EvalFrameEx (f=f@entry=0x7b7340601c20, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#26 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b7342b3e1f8, argcount=4, kws=<optimized out>, 
    kwcount=kwcount@entry=0, defs=0x7b734d4f0c68, defcount=1, closure=0x0) at
Python/ceval.c:3589
#27 0x00007b734deee15b in fast_function (nk=0, na=<optimized out>, n=4,
pp_stack=0x7b73449fe8d8, func=0x7b734d4ff320) at Python/ceval.c:4452
#28 call_function (oparg=<optimized out>, pp_stack=0x7b73449fe8d8) at
Python/ceval.c:4377
#29 PyEval_EvalFrameEx (f=f@entry=0x7b7342b3e020, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#30 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b7342b36e00, argcount=3, kws=<optimized out>, 
    kwcount=kwcount@entry=0, defs=0x7b734d4f0ca8, defcount=1, closure=0x0) at
Python/ceval.c:3589
#31 0x00007b734deee15b in fast_function (nk=0, na=<optimized out>, n=3,
pp_stack=0x7b73449feaf8, func=0x7b734d481410) at Python/ceval.c:4452
#32 call_function (oparg=<optimized out>, pp_stack=0x7b73449feaf8) at
Python/ceval.c:4377
#33 PyEval_EvalFrameEx (f=f@entry=0x7b7342b36c20, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#34 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b7342b279e8, argcount=2, kws=<optimized out>, 
    kwcount=kwcount@entry=0, defs=0x0, defcount=0, closure=0x0) at
Python/ceval.c:3589
#35 0x00007b734deee15b in fast_function (nk=0, na=<optimized out>, n=2,
pp_stack=0x7b73449fed18, func=0x7b734d481668) at Python/ceval.c:4452
#36 call_function (oparg=<optimized out>, pp_stack=0x7b73449fed18) at
Python/ceval.c:4377
#37 PyEval_EvalFrameEx (f=f@entry=0x7b7342b27820, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#38 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b73483f75d8, argcount=1, kws=<optimized out>, 
    kwcount=kwcount@entry=0, defs=0x0, defcount=0, closure=0x0) at
Python/ceval.c:3589
#39 0x00007b734deee15b in fast_function (nk=0, na=<optimized out>, n=1,
pp_stack=0x7b73449fef38, func=0x7b734d4ffde8) at Python/ceval.c:4452
#40 call_function (oparg=<optimized out>, pp_stack=0x7b73449fef38) at
Python/ceval.c:4377
#41 PyEval_EvalFrameEx (f=f@entry=0x7b73483f7440, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#42 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b7344ba55c0, argcount=2, 
    kws=kws@entry=0x7b734dcc0068, kwcount=kwcount@entry=0, defs=defs@entry=0x0,
defcount=defcount@entry=0, closure=0x0) at Python/ceval.c:3589
#43 0x00007b734de72125 in function_call (func=0x7b734d4ffd70,
arg=0x7b7344ba55a8, kw=0x7b7342f36a28) at Objects/funcobject.c:523
#44 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734d4ffd70,
arg=arg@entry=0x7b7344ba55a8, kw=kw@entry=0x7b7342f36a28) at
Objects/abstract.c:2547
#45 0x00007b734deebc06 in ext_do_call (nk=<optimized out>, na=1,
flags=<optimized out>, pp_stack=0x7b73449ff240, func=0x7b734d4ffd70) at
Python/ceval.c:4671
#46 PyEval_EvalFrameEx (f=f@entry=0x7b7349c783f0, throwflag=throwflag@entry=0)
at Python/ceval.c:3033
#47 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b73483216e0, argcount=2, kws=kws@entry=0x0, 
    kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0,
closure=0x0) at Python/ceval.c:3589
#48 0x00007b734de7203e in function_call (func=0x7b734d852d70,
arg=0x7b73483216c8, kw=0x0) at Objects/funcobject.c:523
#49 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734d852d70,
arg=arg@entry=0x7b73483216c8, kw=kw@entry=0x0) at Objects/abstract.c:2547
#50 0x00007b734de59a3b in instancemethod_call (func=0x7b734d852d70,
arg=0x7b73483216c8, kw=0x0) at Objects/classobject.c:2602
#51 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734d4fb370,
arg=arg@entry=0x7b73466ca590, kw=kw@entry=0x0) at Objects/abstract.c:2547
#52 0x00007b734deabc17 in slot_tp_call (self=<optimized out>,
args=0x7b73466ca590, kwds=0x0) at Objects/typeobject.c:5600
#53 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734725f650,
arg=arg@entry=0x7b73466ca590, kw=kw@entry=0x0) at Objects/abstract.c:2547
#54 0x00007b734dee9183 in do_call (nk=0, na=<optimized out>,
pp_stack=0x7b73449ff6a8, func=0x7b734725f650) at Python/ceval.c:4574
#55 call_function (oparg=<optimized out>, pp_stack=0x7b73449ff6a8) at
Python/ceval.c:4379
#56 PyEval_EvalFrameEx (f=f@entry=0x7b7346303820, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#57 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b734027bec0, argcount=2, 
    kws=kws@entry=0x7b734dcc0068, kwcount=kwcount@entry=0, defs=defs@entry=0x0,
defcount=defcount@entry=0, closure=0x7b734d4fe560) at Python/ceval.c:3589
#58 0x00007b734de72125 in function_call (func=0x7b7346a5fcf8,
arg=0x7b734027bea8, kw=0x7b73462da280) at Objects/funcobject.c:523
#59 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b7346a5fcf8,
arg=arg@entry=0x7b734027bea8, kw=kw@entry=0x7b73462da280) at
Objects/abstract.c:2547
#60 0x00007b734deebc06 in ext_do_call (nk=<optimized out>, na=0,
flags=<optimized out>, pp_stack=0x7b73449ff9b0, func=0x7b7346a5fcf8) at
Python/ceval.c:4671
#61 PyEval_EvalFrameEx (f=f@entry=0x7b734031c820, throwflag=throwflag@entry=0)
at Python/ceval.c:3033
#62 0x00007b734deee33d in fast_function (nk=<optimized out>, na=<optimized
out>, n=1, pp_stack=0x7b73449ffb08, func=0x7b734d8a66e0) at Python/ceval.c:4442
#63 call_function (oparg=<optimized out>, pp_stack=0x7b73449ffb08) at
Python/ceval.c:4377
#64 PyEval_EvalFrameEx (f=f@entry=0x7b7343e05420, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#65 0x00007b734deee33d in fast_function (nk=<optimized out>, na=<optimized
out>, n=1, pp_stack=0x7b73449ffc68, func=0x7b734d8a6848) at Python/ceval.c:4442
#66 call_function (oparg=<optimized out>, pp_stack=0x7b73449ffc68) at
Python/ceval.c:4377
#67 PyEval_EvalFrameEx (f=f@entry=0x7b7341a14820, throwflag=throwflag@entry=0)
at Python/ceval.c:2994
#68 0x00007b734def1d5d in PyEval_EvalCodeEx (co=<optimized out>,
globals=<optimized out>, locals=locals@entry=0x0,
args=args@entry=0x7b7342f600e8, argcount=1, kws=kws@entry=0x0, 
    kwcount=kwcount@entry=0, defs=defs@entry=0x0, defcount=defcount@entry=0,
closure=0x0) at Python/ceval.c:3589
#69 0x00007b734de7203e in function_call (func=0x7b734d8a6758,
arg=0x7b7342f600d0, kw=0x0) at Objects/funcobject.c:523
#70 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734d8a6758,
arg=arg@entry=0x7b7342f600d0, kw=kw@entry=0x0) at Objects/abstract.c:2547
#71 0x00007b734de59a3b in instancemethod_call (func=0x7b734d8a6758,
arg=0x7b7342f600d0, kw=0x0) at Objects/classobject.c:2602
#72 0x00007b734de4954c in PyObject_Call (func=func@entry=0x7b734d4fb3c0,
arg=arg@entry=0x7b734dcc0050, kw=<optimized out>) at Objects/abstract.c:2547
#73 0x00007b734dee814e in PyEval_CallObjectWithKeywords (func=0x7b734d4fb3c0,
arg=0x7b734dcc0050, kw=<optimized out>) at Python/ceval.c:4226
#74 0x00007b734df241a2 in t_bootstrap (boot_raw=0x7b734410c080) at
./Modules/threadmodule.c:620
#75 0x00007b734d20b851 in pthread__create_tramp (cookie=0x7b734677d000) at
/disk/6/archive/foreign/src/lib/libpthread/pthread.c:593
#76 0x00007b734ce8a8d0 in ?? () from /usr/lib/libc.so.12
#77 0x00007b734e210700 in ?? ()
#78 0x0000000000000000 in ?? ()

That's on NetBSD 8.99.12/amd64 with python-2.7.14.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to