[perl #58938] [BUG] src/string.c:2241: failed assertion '(s)->encoding'
Will Coleda via RT
parrotbug-followup at parrotcode.org
Wed Oct 28 02:56:56 UTC 2009
On Tue Sep 16 13:53:35 2008, rurban wrote:
> 2008/9/16 via RT Reini Urban <parrotbug-followup at parrotcode.org>:
> > # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58938 >
>
> If you don't spot the error immediately, here's a hint:
> > #5 0x639518e0 in pmc_type () from /usr/bin/cygparrot0_7_0.dll
>
> wrong lib. caused by what?
> the lib should be called
> /usr/src/parrot/parrot-svn/blib/lib/libparrot.dll but an installed
> only config lib and /bin/parrot points to this new name:
> cygparrot0_7_0.dll
>
> So it's related to the RT#39742 installed-conflict bug, but
> I keep this ticket open for this subtle problem until I find the
> reason for the mismatch after loadlib.
>
> > Since a few days loadlib initialization causes an
> > src/string.c:2241: failed assertion '(s)->encoding'
> >
> > See http://nopaste.snit.ch/14072
> > gdb backtrace:
> >
> > src/string.c:2241: failed assertion '(s)->encoding'
> > $ cat encoding-bug.pir
> > loadlib 'rotest'
> >
> > $ gdb ./parrot encoding-bug.pir
> >
> > (gdb) s
> >
> > Breakpoint 7, string_hash (interp=0x1ef2328, s=0x1f41278, seed=3793)
> > at src/string.c:2241
> > 2241 saneify_string(s);
> > (gdb) p *s
> > $1 = {cache = {_b = {_bufstart = 0x69205def, _buflen = 6}, _ptrs = {
> > _struct_val = 0x69205def, _pmc_val = 0x6}, _i = {_int_val =
> 1763728879,
> > _int_val2 = 6}, _num_val = 1.3603372593483627e-313,
> > _string_val = 0x69205def}, flags = 405760, strstart = 0x69205def
> "ROTest",
> > bufused = 6, strlen = 6, hashval = 0, encoding = 0x0, charset =
> 0x0}
> > (gdb) bt
> > #0 string_hash (interp=0x1ef2328, s=0x1f41278, seed=3793) at
> src/string.c:2241
> > #1 0x66fa9aa3 in key_hash_STRING (interp=0x1ef2328, s=0x1f41278,
> seed=3793)
> > at src/hash.c:153
> > #2 0x66faaa5e in parrot_hash_get_bucket (interp=0x1ef2328,
> hash=0x1f6ce88,
> > key=0x1f41278) at src/hash.c:1093
> > #3 0x66faaaef in parrot_hash_get (interp=0x1ef2328, hash=0x1f6ce88,
> > key=0x1f41278) at src/hash.c:1123
> > #4 0x67166491 in Parrot_NameSpace_get_pointer_keyed_str
> (interp=0x1ef2328,
> > pmc=0x1f67d48, key=0x1f41278) at ./src/pmc/namespace.pmc:434
> > #5 0x639518e0 in pmc_type () from /usr/bin/cygparrot0_7_0.dll
> > #6 0x63951971 in pmc_register () from /usr/bin/cygparrot0_7_0.dll
> > #7 0x69203d6a in Parrot_lib_rotest_load (interp=0x1ef2328) at
> ./rotest.c:1166
> > #8 0x66f9c9ee in Parrot_init_lib (interp=0x1ef2328,
> > load_func=0x69203d20 <Parrot_lib_rotest_load>, init_func=0)
> > at src/dynext.c:317
> > #9 0x66f9cb21 in run_init_lib (interp=0x1ef2328, handle=0x69200000,
> > lib_name=0x20e4b78, wo_ext=0x20e4b78) at src/dynext.c:384
> > #10 0x66f9d0d9 in Parrot_load_lib (interp=0x1ef2328, lib=0x1f412a0,
> > initializer_unused=0x0) at src/dynext.c:583
> > #11 0x671a7f46 in do_loadlib (interp=0x1ef2328, lib=0x21066f8
> "'rotest'")
> > at compilers/imcc/imcc.y:602
> > #12 0x671a8d0b in yyparse (yyscanner=0x20f2078, interp=0x1ef2328)
> > at compilers/imcc/imcc.y:737
> > #13 0x671b5281 in compile_to_bytecode (interp=0x1ef2328,
> > sourcefile=0xc3cce4 "encoding-bug.pir", output_file=0x0)
> > at compilers/imcc/main.c:955
> > #14 0x671b562c in imcc_run (interp=0x1ef2328,
> > sourcefile=0xc3cce4 "encoding-bug.pir", argc=1, argv=0x1ef213c)
> > at compilers/imcc/main.c:1058
> > #15 0x00401120 in main (argc=1, argv=0x1ef213c) at src/main.c:61
> > (gdb)
> >
> >
> >
> >
> > --
> > Reini Urban
> > http://phpwiki.org/ http://murbreak.at/
> >
>
>
>
Reini -
The other related RT (39742) is marked resolved after 1.0; we're now at 1.7.0, and this report
was against 0.7.0.
I'm going to mark this ticket as resolved also - if you find you're still having issues against
1.7.0 or a trunk, please open a new trac ticket at https://trac.parrot.org/ (including a
pointer back to this ticket if it's a related issue.)
Regards, and thanks for the report.
--
Will "Coke" Coleda
More information about the parrot-dev
mailing list