# New Ticket Created by  Nick Glencross 
# Please include the string:  [perl #35144]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=35144 >


Guys,

This isn't a highly critical segfault I imagine, although it might be of 
interest to someone.

I discovered 'make fulltest' this evening. One of the debuginfo tests 
(#7) fails as follows with r7942 on i386 Linux:

[EMAIL PROTECTED] parrot $ /usr/bin/perl5.8.5 t/harness --gc-debug 
--running-make-test  -g  t/op/debuginfo.t

t/op/debuginfo....ok 6/8#     Failed test (t/op/debuginfo.t at line 160)
#                   'maximum recursion depth exceeded
# current instr.: 'main' pc -1 ((unknown file):-1)
# called from Sub 'main' pc -1 ((unknown file):-1)
# '
#     doesn't match '/^maximum recursion depth exceeded
# current instr\.: 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
# called from Sub 'main' pc (\d+|-1) \(.*?:(\d+|-1)\)
# \.\.\. call repeated 999 times$/
# '
t/op/debuginfo....NOK 7# Looks like you failed 1 tests of 8.
t/op/debuginfo....dubious
        Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 7
        Failed 1/8 tests, 87.50% okay (less 3 skipped tests: 4 okay, 50.00%)
Failed Test      Stat Wstat Total Fail  Failed  List of Failed
-------------------------------------------------------------------------------
t/op/debuginfo.t    1   256     8    1  12.50%  7
3 subtests skipped.
Failed 1/1 test scripts, 0.00% okay. 1/8 subtests failed, 87.50% okay.

There's a core dump (the last line of output wasn't printed), and a 
backtrace reveals:

Loaded symbols for /lib/ld-linux.so.2
#0  0x080c578a in gc_ms_get_free_object (interpreter=0x8256db8, 
pool=0x8257430)
    at smallobject.c:165
165         PObj_flags_SETTO( (PObj*) ptr, 0);
(gdb) where
#0  0x080c578a in gc_ms_get_free_object (interpreter=0x8256db8, 
pool=0x8257430)
    at smallobject.c:165
#1  0x080c5ba7 in get_free_buffer (interpreter=0x8256db8, pool=0x8257430)
    at headers.c:56
#2  0x080c612a in new_string_header (interpreter=0x8256db8, flags=8192)
    at headers.c:352
#3  0x0808c553 in string_make_direct (interpreter=0x8256db8, 
buffer=0x81f784d,
    len=15, encoding=0x8257550, charset=0x8259ec8, flags=8192) at 
string.c:666
#4  0x0808c518 in string_make (interpreter=0x8256db8, buffer=0x81f784d,
    len=15, charset_name=0x81fb760 "iso-8859-1", flags=8192) at string.c:643
#5  0x080c92f8 in getstring_va (interpreter=0x8256db8, size=0, 
obj=0xbfffeb60)
    at spf_vtable.c:236
#6  0x080c8d6e in Parrot_sprintf_format (interpreter=0x8256db8, 
pat=0x83b11e0,
    obj=0xbfffeb60) at spf_render.c:713
#7  0x080c7a1e in Parrot_vsprintf_s (interpreter=0x8256db8, pat=0x83b11e0,
    args=0xbfffebdc 
"x\022>\bÃÂÃÂÃÂÃÂ\036x\037\bÃÂÃÂÃÂÃÂ`]?\b`]?\bMx\037\bH\023;\bMx\037\bx\022>\bX\022;\bx\022>\bÃÂÃÂÃÂÃÂ\036x\037\bÃÂÃÂÃÂÃÂ8ÃÂÃÂÃÂ1")
 
at misc.c:68
#8  0x080c7a71 in Parrot_vsprintf_c (interpreter=0x8256db8,
    pat=0x81f785d "%s '%Ss' pc %d (%s:%d)\n",
    args=0xbfffebd8 
"Mx\037\bx\022>\bÃÂÃÂÃÂÃÂ\036x\037\bÃÂÃÂÃÂÃÂ`]?\b`]?\bMx\037\bH\023;\bMx\037\bx\022>\bX\022;\bx\022>\bÃÂÃÂÃÂÃÂ\036x\037\bÃÂÃÂÃÂÃÂ8ÃÂÃÂÃÂ1")
 
at misc.c:92
#9  0x080c7b3d in Parrot_sprintf_c (interpreter=0x8256db8,
    pat=0x81f785d "%s '%Ss' pc %d (%s:%d)\n") at misc.c:177
#10 0x080901cc in Parrot_Context_infostr (interpreter=0x8256db8, 
ctx=0x8449a90)
    at sub.c:650
#11 0x080c54e9 in PDB_backtrace (interpreter=0x8256db8) at debug.c:2958
#12 0x081483f2 in find_exception_handler (interpreter=0x8256db8,
    exception=0x826cf00) at exceptions.c:273
#13 0x08148525 in throw_exception (interpreter=0x8256db8, 
exception=0x826cf00,
    dest=0x8466f78) at exceptions.c:379
#14 0x081488d7 in create_exception (interpreter=0x8256db8) at 
exceptions.c:544
#15 0x08148901 in handle_exception (interpreter=0x8256db8) at 
exceptions.c:563
#16 0x0814a86b in runops (interpreter=0x8256db8, offs=0) at inter_run.c:57
#17 0x080c0824 in Parrot_runcode (interpreter=0x8256db8, argc=1,
    argv=0xbfffee40) at embed.c:778
#18 0x080c0662 in Parrot_runcode (interpreter=0x8256db8, argc=1,
    argv=0xbfffee40) at embed.c:712
#19 0x08083f2e in main (argc=1, argv=0xbfffee40) at main.c:605

(gdb) print * (PObj*)ptr
$3 = {obj = {u = {_b = {_bufstart = 0x27207325, _buflen = 661869349}, 
_ptrs = {
        _struct_val = 0x27207325, _pmc_val = 0x27735325}, _i = {
        _int_val = 656438053, _int_val2 = 661869349},
      _num_val = 1.1973921390844648e-118, _string_val = 0x27207325},
    flags = 543387680, _pobj_version = 673211429}}

Don't know enough about gdb to know if this is right...

(gdb) set ((PObj*) ptr)->obj.flags=0
Cannot access memory at address 0x81f7865


I haven't been able to reproduce this standalone outside the test 
harness (but then I haven't tried very hard).

Regards,

Nick

Reply via email to