Issue41215
This issue tracker has been migrated to GitHub,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2020-07-05 11:31 by Michael.Felt, last changed 2022-04-11 14:59 by admin. This issue is now closed.
Pull Requests | |||
---|---|---|---|
URL | Status | Linked | Edit |
PR 21355 | merged | pablogsal, 2020-07-06 18:35 | |
PR 21356 | merged | pablogsal, 2020-07-06 18:47 | |
PR 21364 | merged | lys.nikolaou, 2020-07-06 22:23 | |
PR 21367 | merged | miss-islington, 2020-07-06 22:42 |
Messages (37) | |||
---|---|---|---|
msg373027 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-05 11:31 | |
As the bots were both running - based on gcc - this was not noticed immediately. issue40334 implements PEP 617, the new PEG parser for CPython. Using bisect I located: commit c5fc15685202cda73f7c3f5c6f299b0945f58508 (HEAD, refs/bisect/bad) Author: Pablo Galindo <Pablogsal@gmail.com> Date: Wed Apr 22 23:29:27 2020 +0100 bpo-40334: PEP 617 implementation: New PEG parser for CPython (GH-19503) Co-authored-by: Guido van Rossum <guido@python.org> Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com> +++ the make status (abbreviated) is: root@x066:[/data/prj/python/py39-3.10]slibclean; rm -rf *; buildaix --without-computed-gotos; print; date; ./python -E -S -m sysconfig --generate-posix-vars; ./python + CPPFLAGS="-I/opt/include" CFLAGS="-I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5"\ ../git/py39-3.10/configure\ --prefix=/opt \ --sysconfdir=/var/py39/etc\ --sharedstatedir=/var/py39/com\ --localstatedir=/var/py39\ --mandir=/usr/share/man\ --infodir=/opt/share/info/py39 --without-computed-gotos\ > .buildaix/configure.out + /usr/bin/make > .buildaix/make.out 1500-016: (W) WARNING: Compiler problem occurred while compiling _PyPegen_clear_memo_statistics: A file or directory in the path name does not exist.. 1500-034: (S) Cannot create object file. make: 1254-004 The error code from the last command is 1. +++ The complete make.out (stdout) is: root@x066:[/data/prj/python/py39-3.10]cat .buildaix/make* xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Programs/python.o ../git/py39-3.10/Programs/python.c xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Parser/acceler.o ../git/py39-3.10/Parser/acceler.c xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Parser/grammar1.o ../git/py39-3.10/Parser/grammar1.c xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Parser/listnode.o ../git/py39-3.10/Parser/listnode.c xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Parser/node.o ../git/py39-3.10/Parser/node.c xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Parser/parser.o ../git/py39-3.10/Parser/parser.c xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Parser/token.o ../git/py39-3.10/Parser/token.c xlc_r -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -I../git/py39-3.10/Include/internal -IObjects -IInclude -IPython -I. -I../git/py39-3.10/Include -I/opt/include -I/opt/include -DPy_BUILD_CORE -o Parser/pegen/pegen.o ../git/py39-3.10/Parser/pegen/pegen.c ******* After commit a25f3c4c8f7d4878918ce1d3d67db40ae255ccc6 (HEAD) Author: Pablo Galindo <Pablogsal@gmail.com> Date: Thu Apr 23 01:38:11 2020 +0100 bpo-40334: Fix builds outside the source directory and regenerate autoconf files (GH-19667) /bin/sh: 7405692 Segmentation fault(coredump) make: 1254-004 The error code from the last command is 139. Stop. /usr/bin/make returned an error Sun Jul 5 11:23:39 UTC 2020 Segmentation fault(coredump) Python 3.9.0a5+ (default, Jul 5 2020, 11:23:33) [C] on aix Type "help", "copyright", "credits" or "license" for more information. *********** The above includes aixtools@x064:[/data/prj/python/git/py39-3.10]git checkout 458004bf7914f96b20bb76bc3584718cf83f652e Previous HEAD position was a25f3c4c8f bpo-40334: Fix builds outside the source directory and regenerate autoconf files (GH-19667) HEAD is now at 458004bf79 bpo-40334: Fix errors in parse_string.c with old compilers (GH-19666) This still crashes with the message: 1500-016: (W) WARNING: Compiler problem occurred while compiling _PyPegen_clear_memo_statistics: A file or directory in the path name does not exist.. 1500-034: (S) Cannot create object file. ************ I'll add more debug info in a followup - starting at: Previous HEAD position was a25f3c4c8f bpo-40334: Fix builds outside the source directory and regenerate autoconf files (GH-19667) |
|||
msg373030 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-05 13:40 | |
Well, the first step -s just showing where the segmentation fault occurs (in pegen.c). I am not really 'wiser' in what I should be looking at. I'll try adding a fprintf(stderr, ....) to see if I can figure out a bit more. For the experts: (dbx) where strncmp(??, ??, ??) at 0xd011d920 _get_keyword_or_name_type(p = 0x00000023, name = warning: Unable to access address 0xd from core (invalid char ptr (0x0000000d)), name_len = 0), line 503 in "pegen.c" _PyPegen_fill_token(p = 0x1025f138), line 546 in "pegen.c" _PyPegen_expect_token(p = (nil), type = 805759776), line 675 in "pegen.c" _tmp_6_rule@AF486_140(??), line 10251 in "parse.c" _PyPegen_lookahead(positive = 269294544, func = 0x3001da40, p = 0x2ff20f30), line 666 in "pegen.c" compound_stmt_rule@AF476_280(??), line 1232 in "parse.c" statement_rule@AF477_284(??), line 795 in "parse.c" unnamed block in _loop1_2_rule(p = 0x30085830), line 10086 in "parse.c" _loop1_2_rule(p = 0x30085830), line 10086 in "parse.c" statements_rule@AF478_285(??), line 766 in "parse.c" file_rule@AF479_289(??), line 646 in "parse.c" _PyPegen_run_parser(p = 0x30085820), line 916 in "pegen.c" _PyPegen_run_parser_from_string(str = "compile", start_rule = 272032944, filename_ob = 0x20084f68, iflags = 805427776, arena = 0x30085820), line 1024 in "pegen.c" PyPegen_ASTFromStringObject(str = (nil), filename = (nil), mode = 804393472, flags = 0x20035cb0, arena = 0x102453c4), line 26 in "peg_api.c" unnamed block in Py_CompileStringObject(str = "|p^[yN", filename = (nil), start = 0, flags = 0x3007bbc8, optimize = -2147483647), line 1244 in "pythonrun.c" Py_CompileStringObject(str = "|p^[yN", filename = (nil), start = 0, flags = 0x3007bbc8, optimize = -2147483647), line 1244 in "pythonrun.c" builtin_compile_impl(module = (nil), source = 0x20000bd8, filename = 0x20063c48, mode = "\320Qf", flags = 1, dont_inherit = 536873648, optimize = 804393760, feature_version = 537275800), line 823 in "bltinmodule.c" builtin_compile(module = 0x2ff21460, args = 0x3007fa78, nargs = 2, kwnames = 0x30007470), line 274 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL_KEYWORDS(func = 0x100b203c, args = 0x00000003, nargsf = 804394000, kwnames = 0x20047844), line 396 in "methodobject.c" PyVectorcall_Call(callable = 0x100b2e10, tuple = 0x20026f40, kwargs = 0x2ff21470), line 255 in "call.c" _PyObject_Call(tstate = 0x100b1d1c, callable = 0x30002870, args = 0x2ff214c0, kwargs = 0x30043fd0), line 265 in "call.c" do_call_core(tstate = 0x00000001, func = 0x30094050, callargs = 0x30046428, kwdict = 0x300462e8), line 5054 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x3009315c, f = 0x30043e58, throwflag = -261800280), line 3542 in "ceval.c" _PyEval_EvalCode(tstate = 0x3005d820, _co = 0x3003a6a0, globals = 0x2ff216d0, locals = 0x422822cc, args = 0x100b46e4, argcount = 805410760, kwnames = 0x2ff216d0, kwargs = 0x20047844, kwcount = 2, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x300197c8, qualname = 0x300197c8), line 41 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x100d3714, stack = 0x3008ea08, nargsf = 804394848, kwnames = 0x20047844), line 411 in "call.c" _PyEval_EvalFrameDefault(tstate = 0xffffffff, f = 0x300834c8, throwflag = 804395040), line 487 in "abstract.h" _PyEval_EvalCode(tstate = 0x300865b0, _co = 0x30061b88, globals = 0x2ff218e0, locals = 0x5328333f, args = 0x10073d54, argcount = 537279560, kwnames = 0x2ff218e0, kwargs = 0x20047844, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = 0x3006bb90, closure = (nil), name = 0x30061b88, qualname = 0x3004eb10), line 41 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x30092f50, stack = 0x30004048, nargsf = 804395376, kwnames = (nil)), line 411 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x100759a4, f = (nil), throwflag = 804395568), line 487 in "abstract.h" function_code_fastcall(tstate = 0x300418bc, co = (nil), args = 0x3000c220, nargs = 805664616, globals = (nil)), line 41 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x100759a4, f = 0x30087c08, throwflag = 804395904), line 487 in "abstract.h" function_code_fastcall(tstate = 0x30086520, co = 0x3004c070, args = 0x2000abe8, nargs = 1, globals = 0x30049ec0), line 41 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = (nil), f = 0x00000001, throwflag = 804396240), line 487 in "abstract.h" function_code_fastcall(tstate = 0x3004389c, co = 0x30031176, args = 0x30031160, nargs = 805626736, globals = (nil)), line 41 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x100759a4, f = 0x20063c48, throwflag = 804396576), line 487 in "abstract.h" function_code_fastcall(tstate = 0x00000082, co = 0x00000087, args = 0x2ff21e90, nargs = 0, globals = 0x3004c070), line 41 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x102f4474, f = (nil), throwflag = 804397104), line 487 in "abstract.h" function_code_fastcall(tstate = 0x3004ca50, co = 0x3004c688, args = 0x2ff21ff0, nargs = 537163844, globals = 0x10073e78), line 41 in "pycore_ceval.h" object_vacall(tstate = 0x20062d98, base = 0x20063c48, callable = 0x2ff22050, vargs = warning: Unable to access address 0x482822cf from core (invalid char ptr (0x482822cf))), line 62 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = (nil), name = 0x20025dc0, ... = 0x3008d778, 0x3003c488, 0x0, 0x3003ad88, 0x3003acc8, 0x3003ace8), line 895 in "call.c" import_find_and_load(tstate = 0x2004185c, abs_name = (nil)), line 1767 in "import.c" unnamed block in PyImport_ImportModuleLevelObject(name = 0x30084d70, globals = (nil), locals = 0x103b2490, fromlist = 0x2003acc8, level = 804397488), line 1881 in "import.c" PyImport_ImportModuleLevelObject(name = 0x30084d70, globals = (nil), locals = 0x103b2490, fromlist = 0x2003acc8, level = 804397488), line 1881 in "import.c" builtin___import__(self = 0x100bde94, args = 0x00000010, kwds = 0x2ff22220), line 280 in "bltinmodule.c" cfunction_call(func = 0x20063c48, args = 0x3003c3e8, kwargs = (nil)), line 464 in "methodobject.c" _PyObject_MakeTpCall(tstate = (nil), callable = 0x2ff2235c, args = 0x2ff22300, nargs = 673718991, keywords = 0x100bbd94), line 191 in "call.c" _PyObject_CallFunctionVa(tstate = 0x61f122d6, callable = (nil), format = warning: Unable to access address 0xdeadbeef from core (invalid char ptr (0xdeadbeef)), va = (nil), is_size_t = 0), line 65596 in "abstract.h" PyObject_CallFunction(callable = 0x3003c488, format = "OOOOi", ... = 0x3008d778, 0x30084dc0, 0x30084dc0, 0x3006af48, 0x0, 0x0), line 577 in "call.c" PyImport_Import(module_name = 0x2ff22540), line 2082 in "import.c" PyImport_ImportModule(name = "\200A"), line 1485 in "import.c" PyImport_ImportModuleNoBlock(name = "`"), line 1503 in "import.c" _PyCodecRegistry_Init(), line 1541 in "codecs.c" _PyCodec_Forget(encoding = warning: Unable to access address 0x61f122d6 from core (invalid char ptr (0x61f122d6))), line 122 in "codecs.c" init_stdio_encoding(tstate = 0x2ff22614), line 15915 in "unicodeobject.c" init_fs_encoding(tstate = 0x20007e20), line 16028 in "unicodeobject.c" _PyUnicode_InitEncodings(tstate = 0x2ff22730), line 16044 in "unicodeobject.c" init_interp_main(tstate = 0x00000001), line 1006 in "pylifecycle.c" pyinit_main(tstate = 0x200009f0), line 1097 in "pylifecycle.c" Py_InitializeFromConfig(config = (nil)), line 1141 in "pylifecycle.c" pymain_init(args = 0xf066a338), line 66 in "main.c" pymain_main(args = 0x00000001), line 653 in "main.c" Py_BytesMain(argc = -559038737, argv = 0xdeadbeef), line 686 in "main.c" python.main(argc = 0, argv = (nil)), line 15 in "python.c" (dbx) (dbx) registers $r0:0xd011d900 $stkp:0x2ff20d40 $toc:0xf0648838 $r3:0x3fefffff $r4:0x200898bf $r5:0x00000008 $r6:0x2000f098 $r7:0x00000012 $r8:0x00556367 $r9:0x0a5f696d $r10:0x80000000 $r11:0x7f7f7f7f $r12:0xf0641f5c $r13:0x80000000 $r14:0x00000001 $r15:0x3004713c $r16:0x30047130 $r17:0x3003c668 $r18:0x20038844 $r19:0x30094078 $r20:0x3007bbc8 $r21:0x3004642c $r22:0x30046428 $r23:0x00000000 $r24:0x20087710 $r25:0x00000012 $r26:0x00000001 $r27:0x00000005 $r28:0x300a9980 $r29:0x2000f528 $r30:0x00000000 $r31:0x00000008 $iar:0xd011d920 $msr:0x0000d032 $cr:0x44288468 $link:0x1025a524 $ctr:0x00000008 $xer:0x00000010 Condition status = 0:g 1:g 2:e 3:l 4:l 5:g 6:ge 7:l [unset $noflregs to view floating point registers] [unset $novregs to view vector registers] [unset $novsregs to view vector scalar registers] in strncmp at 0xd011d920 ($t1) 0xd011d920 (strncmp+0x20) 88030001 lbz r0,0x1(r3) (dbx) listi strncmp 0xd011d900 (strncmp) 7c832040 cmpl cr1,0x0,r3,r4 0xd011d904 (strncmp+0x4) 2c050000 cmpi cr0,0x0,r5,0x0 0xd011d908 (strncmp+0x8) 4186003c beq cr1,0xd011d944 (strncmp+0x44) 0xd011d90c (strncmp+0xc) 3863ffff addi r3,-1(r3) 0xd011d910 (strncmp+0x10) 41820034 beq 0xd011d944 (strncmp+0x44) 0xd011d914 (strncmp+0x14) 3884ffff addi r4,-1(r4) 0xd011d918 (strncmp+0x18) 7ca903a6 mtctr r5 0xd011d91c (strncmp+0x1c) 60210000 ori r1,r1,0x0 0xd011d920 (strncmp+0x20) 88030001 lbz r0,0x1(r3) 0xd011d924 (strncmp+0x24) 38630001 addi r3,0x1(r3) |
|||
msg373031 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-05 14:42 | |
OK - merely added some fprintf statements. When it is working as expected, the k->type values seem to be between 500 and 535 - when it fails the k->type value is frequently 9 digits (e.g., 537120904) - and it seems to never become -1 -- which would end the loop and "RETURN NAME". One working example... NAMEPTR: 20089d44, name_len:6 strlen(name):4472 name.16s: import aliases token: 20030d30, k_type:500, strlen(k->str):6 k->str.16s: return token: 20030d38, k_type:505, strlen(k->str):6 k->str.16s: assert token: 20030d40, k_type:508, strlen(k->str):6 k->str.16s: global token: 20030d48, k_type:513, strlen(k->str):6 k->str.16s: import RETURN k->type: 513 from k-str.16:import And a failed (abbreviated) that ends with the segmentation error: NAMEPTR: 20089d60, name_len:8 strlen(name):4444 name.16s: _unknown = '--un token: 2000f340, k_type:537120904, strlen(k->str):0 k->str.16s: token: 2000f348, k_type:271488524, strlen(k->str):8 k->str.16s: d z▒ token: 2000f350, k_type:805316552, strlen(k->str):0 k->str.16s: token: 2000f358, k_type:368, strlen(k->str):11 k->str.16s: __setitem__ token: 2000f360, k_type:537120928, strlen(k->str):8 k->str.16s: <▒ z▒ token: 2000f368, k_type:0, strlen(k->str):61 k->str.16s: __setitem__($sel token: 2000f370, k_type:271482672, strlen(k->str):0 k->str.16s: ... token: 2000f730, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f738, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f740, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f748, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f750, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f758, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f760, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f768, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f770, k_type:271810528, strlen(k->str):0 k->str.16s: token: 2000f778, k_type:0, strlen(k->str):0 k->str.16s: token: 2000f780, k_type:271810512, strlen(k->str):4 k->str.16s: real token: 2000f788, k_type:0, strlen(k->str):0 k->str.16s: /bin/sh: 8847524 Segmentation fault(coredump) make: 1254-004 The error code from the last command is 139. Hope this helps. I really do not know 'WHERE' it went wrong. I can only begin by guessing. So, expert guidance is appreciated! |
|||
msg373038 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-05 18:27 | |
Unfortunately, I am having a hard time parsing your error description because is not immediate to distinguish: - What is the error. - Where does the error happen. - How to reproduce the error. Could you kindly provide more scoped information about these points so we can look into it? |
|||
msg373039 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-05 18:34 | |
Michael, can you try with this patch: diff --git a/Parser/pegen.c b/Parser/pegen.c index 53e3d49138..7faeec26ad 100644 --- a/Parser/pegen.c +++ b/Parser/pegen.c @@ -528,7 +528,7 @@ _get_keyword_or_name_type(Parser *p, const char *name, int name_len) if (name_len >= p->n_keyword_lists || p->keywords[name_len] == NULL) { return NAME; } - for (KeywordToken *k = p->keywords[name_len]; k->type != -1; k++) { + for (KeywordToken *k = p->keywords[name_len]; k != NULL && k->type != -1; k++) { if (strncmp(k->str, name, name_len) == 0) { return k->type; } For whatever reasons, it seems that me are calling into _get_keyword_or_name_type with a name_len of 0. |
|||
msg373053 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-05 23:33 | |
Iirc, my debug shows that k is not NULL, as k++ is not going to suddenly become smaller. And my debug shows it grows by a constant. My gut says the pointer to the base of the tokens is wrong, because the key types are such different values. Or do you know that those are valid types? |
|||
msg373070 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-06 06:50 | |
My apologies for lack of context. On 05/07/2020 20:27, Pablo Galindo Salgado wrote: > Pablo Galindo Salgado <pablogsal@gmail.com> added the comment: > > Unfortunately, I am having a hard time parsing your error description because is not immediate to distinguish: > > - What is the error. crash - segmentation error. > - Where does the error happen. During python initialization. > - How to reproduce the error. The error occurs during `make` root@x066:[/data/prj/python/bpo-41215]make xlc_r -g -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -O -I../git/bpo-41215/Include/internal -IObjects -IInclude -IPython -I. -I../git/bpo-41215/Include -I/opt/include -DPy_BUILD_CORE -o Parser/pegen/pegen.o ../git/bpo-41215/Parser/pegen/pegen.c xlc_r -g -c -DNDEBUG -O -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -O -I../git/bpo-41215/Include/internal -IObjects -IInclude -IPython -I. -I../git/bpo-41215/Include -I/opt/include -DPy_BUILD_CORE -DGITVERSION="\"`LC_ALL=C `\"" -DGITTAG="\"`LC_ALL=C `\"" -DGITBRANCH="\"`LC_ALL=C `\"" -o Modules/getbuildinfo.o ../git/bpo-41215/Modules/getbuildinfo.c rm -f libpython3.9.a ar rcs libpython3.9.a Modules/getbuildinfo.o Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/token.o Parser/pegen/pegen.o Parser/pegen/parse.o Parser/pegen/parse_string.o Parser/pegen/peg_api.o Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o Objects/abstract.o Objects/accu.o Objects/boolobject.o Objects/bytes_methods.o Objects/bytearrayobject.o Objects/bytesobject.o Objects/call.o Objects/capsule.o Objects/cellobject.o Objects/classobject.o Objects/codeobject.o Objects/complexobject.o Objects/descrobject.o Objects/enumobject.o Objects/exceptions.o Objects/genericaliasobject.o Objects/genobject.o Objects/fileobject.o Objects/floatobject.o Objects/frameobject.o Objects/funcobject.o Objects/interpreteridobject.o Objects/iterobject.o Objects/listobject.o Objects/longobject.o Objects/dictobject.o Objects/odictobject.o Objects/memoryobject.o Objects/methodobject.o Objects/moduleobject.o Objects/namespaceobject.o Objects/object.o Objects/obmalloc.o Objects/picklebufobject.o Objects/rangeobject.o Objects/setobject.o Objects/sliceobject.o Objects/structseq.o Objects/tupleobject.o Objects/typeobject.o Objects/unicodeobject.o Objects/unicodectype.o Objects/weakrefobject.o Python/_warnings.o Python/Python-ast.o Python/asdl.o Python/ast.o Python/ast_opt.o Python/ast_unparse.o Python/bltinmodule.o Python/ceval.o Python/codecs.o Python/compile.o Python/context.o Python/dynamic_annotations.o Python/errors.o Python/frozenmain.o Python/future.o Python/getargs.o Python/getcompiler.o Python/getcopyright.o Python/getplatform.o Python/getversion.o Python/graminit.o Python/hamt.o Python/import.o Python/importdl.o Python/initconfig.o Python/marshal.o Python/modsupport.o Python/mysnprintf.o Python/mystrtoul.o Python/pathconfig.o Python/peephole.o Python/preconfig.o Python/pyarena.o Python/pyctype.o Python/pyfpe.o Python/pyhash.o Python/pylifecycle.o Python/pymath.o Python/pystate.o Python/pythonrun.o Python/pytime.o Python/bootstrap_hash.o Python/structmember.o Python/symtable.o Python/sysmodule.o Python/thread.o Python/traceback.o Python/getopt.o Python/pystrcmp.o Python/pystrtod.o Python/pystrhex.o Python/dtoa.o Python/formatter_unicode.o Python/fileutils.o Python/dynload_shlib.o Modules/config.o Modules/getpath.o Modules/main.o Modules/gcmodule.o Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/_peg_parser.o Modules/symtablemodule.o Modules/xxsubtype.o Python/frozen.o ../git/bpo-41215/Modules/makexp_aix Modules/python.exp . libpython3.9.a; xlc_r -g -Wl,-bE:Modules/python.exp -lld -o python Programs/python.o libpython3.9.a -lintl -ldl -lm -lm ./python -E -S -m sysconfig --generate-posix-vars ; if test $? -ne 0 ; then echo "generate-posix-vars failed" ; rm -f ./pybuilddir.txt ; exit 1 ; fi /bin/sh: 5242890 Segmentation fault(coredump) make: 1254-004 The error code from the last command is 139. Stop. And can be repeated by just trying to start the executable: root@x066:[/data/prj/python/bpo-41215]./python Segmentation fault(coredump) > > Could you kindly provide more scoped information about these points so we can look into it? > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373090 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 10:41 | |
I tried compiling Python 3.10 with XLC on AIX and I get a crash in a different place that does not involve the parser: _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x300b5190, throwflag = 0), line 427 in "object.h" _PyEval_EvalCode(tstate = 0x10024050, _co = 0x30048238, globals = 0x2ff1b440, locals = 0x20043d14, args = 0x10024654, argcount = 806053032, kwnames = 0x2ff1b450, kwargs = 0x300a8b20, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x10030d78, globals = 0x300aca40, locals = 0x300a9808, args = (nil), argcount = 0, kwnames = 0x300a0ad0, kwargs = 0x2ff1b4e0, kwcount = 805747592, kwstep = 2, defs = (nil), defc ount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4397 in "ceval.c" PyEval_EvalCodeEx(_co = 0x3009c9d4, globals = 0x104f4bd8, locals = 0x20044f40, args = (nil), argcount = 2, kws = (nil), kwcount = 804369808, defs = 0x300847c8, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" builtin___build_class__(self = 0x10121d9c, args = 0x300a8b20, nargs = 804369888, kwnames = 0x20043d14), line 222 in "bltinmodule.c" cfunction_vectorcall_FASTCALL_KEYWORDS(func = 0x1022a424, args = 0x3009d090, nargsf = 804370000, kwnames = 0x20043d14), line 440 in "methodobject.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x300ac900, throwflag = 0), line 114 in "abstract.h" _PyEval_EvalCode(tstate = 0x3009c9d4, _co = 0x104f4bd8, globals = 0x20044f40, locals = 0x300887d8, args = 0x30088774, argcount = 84, kwnames = 0x30088784, kwargs = 0x00000006, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x00000002, globals = 0x200764e0, locals = (nil), args = 0x30041e68, argcount = 805670664, kwnames = 0x300a8b20, kwargs = 0x2ff1bda0, kwcount = 537148692, kwstep = 2, defs = (ni l), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4397 in "ceval.c" PyEval_EvalCodeEx(_co = 0x100e6a6c, globals = 0x00000060, locals = 0x2ff1bdf0, args = 0x20000440, argcount = 536901064, kws = 0x20007820, kwcount = 804371984, defs = 0x20043d14, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x1012ad08, globals = 0x10504de8, locals = 0x300b82f8), line 857 in "ceval.c" builtin_exec_impl(module = 0x30066704, source = 0x30089a30, globals = 0x30041e68, locals = 0xcfd41162), line 1035 in "bltinmodule.c" builtin_exec(module = 0x3006686c, args = 0x300734d8, nargs = 0), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0x300734d8, args = 0x200764e0, nargsf = 804372448, kwnames = (nil)), line 443 in "methodobject.c" PyVectorcall_Call(callable = 0x3005dad8, tuple = 0xffffffff, kwargs = 0x2ff1bff0), line 249 in "call.c" _PyObject_Call(tstate = 0x101185e0, callable = 0x30058ed8, args = 0x2ff1c030, kwargs = (nil)), line 265 in "call.c" unnamed block in do_call_core(tstate = 0x100bf40c, func = 0x30089a30, callargs = (nil), kwdict = (nil)), line 5142 in "ceval.c" unnamed block in do_call_core(tstate = 0x100bf40c, func = 0x30089a30, callargs = (nil), kwdict = (nil)), line 5142 in "ceval.c" do_call_core(tstate = 0x100bf40c, func = 0x30089a30, callargs = (nil), kwdict = (nil)), line 5142 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x3009c8a0, throwflag = 0), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0x00000002, _co = 0x200746f0, globals = 0x300a97d8, locals = 0x200764e0, args = 0x200764e0, argcount = 804375636, kwnames = 0x200486e0, kwargs = 0xde5cc1d8, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x3001aba8, qualname = 0x3001aba8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x0000000e, stack = 0x20007820, nargsf = 804374496, kwnames = 0x84882224), line 410 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x3006ba40, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0x00000002, co = (nil), args = (nil), nargs = 805657496, globals = 0x2ff1d350), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0x00000002, co = (nil), args = (nil), nargs = 805657496, globals = 0x2ff1d350), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3005d390, stack = 0x300586b8, nargsf = 536911832, kwnames = 0x30049178), line 378 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x300ad1b0, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0x00000002, co = 0x200746f0, args = 0x300a97d8, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0x00000002, co = 0x200746f0, args = 0x300a97d8, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3007ce88, stack = 0x300a4468, nargsf = 804378112, kwnames = 0x20000440), line 378 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x3006ab20, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0x00000002, co = 0x200746f0, args = 0x300a97d8, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0x00000002, co = 0x200746f0, args = 0x300a97d8, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x1015971c, stack = (nil), nargsf = 804379888, kwnames = 0x20043d14), line 378 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x300ad030, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0x101524f4, co = 0x30002068, args = 0x2ff1e350, nargs = 537148692, globals = 0x300a9b08), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0x101524f4, co = 0x30002068, args = 0x2ff1e350, nargs = 537148692, globals = 0x300a9b08), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x100be45c, stack = 0x0000000a, nargsf = 0, kwnames = 0x20043d14), line 378 in "call.c" _PyObject_CallMethodIdObjArgs(obj = (nil), name = 0x20010dc0, ... = 0x300a97d8, 0x3004b450, 0x0, 0x1010101, 0x4f004942, 0x800000), line 882 in "call.c" import_find_and_load(tstate = 0x30087df0, abs_name = 0x200764e0), line 1765 in "import.c" PyImport_ImportModuleLevelObject(name = 0x300062f8, globals = 0x300a8618, locals = 0x2ff1e5c0, fromlist = 0x300aa280, level = 269622228), line 1866 in "import.c" import_name(tstate = 0x1022a424, f = 0x00000005, name = (nil), fromlist = 0x20043d14, level = (nil)), line 5234 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x30087df0, throwflag = 0), line 3120 in "ceval.c" _PyEval_EvalCode(tstate = 0x30066704, _co = 0x104f4bd8, globals = 0x20044f40, locals = 0x3008873c, args = 0x300886cc, argcount = 96, kwnames = 0x300886dc, kwargs = 0x00000008, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x00000002, globals = 0x200764e0, locals = (nil), args = 0x30041e68, argcount = 805670664, kwnames = 0x300a8618, kwargs = 0x2ff1ed80, kwcount = 537148692, kwstep = 2, defs = (ni l), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4397 in "ceval.c" PyEval_EvalCodeEx(_co = 0x100e6a6c, globals = 0x20007820, locals = 0x2ff1edd0, args = 0x88484224, argcount = 269815832, kws = 0x3003e770, kwcount = 2, defs = 0x00000001, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x101539b4, globals = 0x10504de8, locals = 0x300aa280), line 857 in "ceval.c" builtin_exec_impl(module = 0xdeadbeef, source = 0x30089a30, globals = 0x300a1390, locals = (nil)), line 1035 in "bltinmodule.c" builtin_exec(module = 0x3006e228, args = 0x300734d8, nargs = 0), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0x300734d8, args = 0x200764e0, nargsf = 804384704, kwnames = 0xdeadbeef), line 443 in "methodobject.c" PyVectorcall_Call(callable = 0x3005dad8, tuple = 0xffffffff, kwargs = 0x2ff1efd0), line 249 in "call.c" _PyObject_Call(tstate = 0x101185e0, callable = 0x30058ed8, args = 0x2ff1f010, kwargs = 0xdeadbeef), line 265 in "call.c" unnamed block in do_call_core(tstate = 0x100bf40c, func = 0x30089a30, callargs = (nil), kwdict = 0xdeadbeef), line 5142 in "ceval.c" unnamed block in do_call_core(tstate = 0x100bf40c, func = 0x30089a30, callargs = (nil), kwdict = 0xdeadbeef), line 5142 in "ceval.c" do_call_core(tstate = 0x100bf40c, func = 0x30089a30, callargs = (nil), kwdict = 0xdeadbeef), line 5142 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x300665d0, throwflag = 0), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0xdeadbeef, _co = 0x200746f0, globals = 0x300a6868, locals = 0x200764e0, args = 0x200764e0, argcount = 804387892, kwnames = 0x200486e0, kwargs = 0xde5cc1d8, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x3001aba8, qualname = 0x3001aba8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3009a848, stack = 0x2ff22008, nargsf = 20, kwnames = 0x104f4bd8), line 410 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x3006b760, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0xdeadbeef, co = (nil), args = (nil), nargs = 805657496, globals = 0x2ff20330), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0xdeadbeef, co = (nil), args = (nil), nargs = 805657496, globals = 0x2ff20330), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3005d390, stack = 0x300586b8, nargsf = 536911832, kwnames = 0x30049178), line 378 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x3006c930, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0xdeadbeef, co = 0x200746f0, args = 0x300a6868, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0xdeadbeef, co = 0x200746f0, args = 0x300a6868, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3004df58, stack = 0x30092968, nargsf = 804390352, kwnames = 0x30038988), line 378 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x3006a350, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0xdeadbeef, co = 0x200746f0, args = 0x300a6868, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0xdeadbeef, co = 0x200746f0, args = 0x300a6868, nargs = 537355488, globals = 0x200764e0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x1002a464, stack = (nil), nargsf = 804392224, kwnames = 0x20043d14), line 378 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200764e0, f = 0x3006c7b0, throwflag = 0), line 114 in "abstract.h" unnamed block in function_code_fastcall(tstate = 0x101524f4, co = (nil), args = 0x20003018, nargs = 537148692, globals = 0x300a6898), line 40 in "pycore_ceval.h" function_code_fastcall(tstate = 0x101524f4, co = (nil), args = 0x20003018, nargs = 537148692, globals = 0x300a6898), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x100be45c, stack = 0x0000000a, nargsf = 0, kwnames = 0x20043d14), line 378 in "call.c" object_vacall(tstate = 0x100e2454, base = 0x200764e0, callable = 0x200746f0, vargs = (nil)), line 58 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = 0x30064880, name = 0x20010dc0, ... = 0x300a6868, 0x3004b450, 0x0, 0x1010101, 0x4f004942, 0x800000), line 882 in "call.c" import_find_and_load(tstate = (nil), abs_name = 0x3009a7a0), line 1765 in "import.c" PyImport_ImportModuleLevelObject(name = 0x3009a810, globals = 0x00000005, locals = 0x2ff215a0, fromlist = 0x200374d8, level = 804394368), line 1866 in "import.c" builtin___import__(self = 0x1012a334, args = 0x00000002, kwds = 0x2ff21620), line 280 in "bltinmodule.c" cfunction_call(func = (nil), args = 0x200764e0, kwargs = (nil)), line 556 in "methodobject.c" _PyObject_MakeTpCall(tstate = 0x100d2a3c, callable = 0x3004b3f0, args = (nil), nargs = 537148692, keywords = (nil)), line 191 in "call.c" _PyObject_CallFunctionVa(tstate = 0x00000001, callable = 0x2ff22008, format = "/\362!I/\362!e/\362!v/\362"Z/\362"p/\362"~/\362$^A/\362$^\/\362$0/\362$G/\362%h/\362%|/\362%\234/\362%\314/\362&|/\362&\232/\362& \272/\362&\316/\362&\347/\362'$/\362'5/\362'a/\362'\267/\362'\306/\362'\333/\362(^Y/\362(4/\362(X/\362(c/\362(\213/\362(\235/\362(\274/\362(\311/\362(\350/\362*f/\362*t/\362*\215/\362*\235/\362*\274/\362*\323 /\362*\375/\362+^H/\362++/\362+A/\362+a/\362+h/\362+r/\362+}/\362+\243/\362+\320/\362+\375/\362,^I/\362,6/\362,>/\362,S/\362,d/\362,o/\362,\200/\362,\213/\362-\206/\362-\262/\362-\305/\362-\327/\362.^I/\362.^ Z/\362.'/\362.8/\362.V/\362.]/\362.u/\362.\211/\362.\230/\362.\355/\362.\370/\362/2", va = "", is_size_t = -559038737), line 65592 in "abstract.h" PyObject_CallFunction(callable = 0x1048af4c, format = "OOOOi", ... = 0x300a6868, 0x3009a810, 0x3009a810, 0x30086508, 0x0, 0x0), line 564 in "call.c" PyImport_Import(module_name = 0xdeadbeef), line 2067 in "import.c" PyImport_ImportModule(name = "\201\201"), line 1482 in "import.c" _PyCodecRegistry_Init(), line 1547 in "codecs.c" _PyCodec_Forget(encoding = "\177\200"), line 128 in "codecs.c" init_stdio_encoding(tstate = 0x00000008), line 15996 in "unicodeobject.c" init_fs_encoding(tstate = 0x200764e0), line 16110 in "unicodeobject.c" _PyUnicode_InitEncodings(tstate = 0x20000440), line 16126 in "unicodeobject.c" init_interp_main(tstate = 0x00000001), line 1016 in "pylifecycle.c" pyinit_main(tstate = (nil)), line 1107 in "pylifecycle.c" Py_InitializeFromConfig(config = (nil)), line 1151 in "pylifecycle.c" pymain_init(args = 0xf0a26210), line 66 in "main.c" pymain_main(args = 0x00000001), line 694 in "main.c" Py_BytesMain(argc = -559038737, argv = 0xdeadbeef), line 727 in "main.c" python.main(argc = 0, argv = (nil)), line 15 in "python.c" |
|||
msg373091 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 10:47 | |
If I check out commit c5fc15685202cda73f7c3f5c6f299b0945f58508 I get a crash, but not on master or 3.9 HEAD. So whatever error happens with XLC in the PEG parser c5fc15685202cda73f7c3f5c6f299b0945f58508 seems that is already solved. Could you confirm that you get a a different crash (different backtrace) in master, Michael? |
|||
msg373097 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 11:43 | |
Ok, I have investigated more and it seems that XLC is miscompiling the keyword list. For instance, if you add: index 9d3ac575df..70d431e6be 100644 --- a/Parser/pegen/parse.c +++ b/Parser/pegen/parse.c @@ -1,6 +1,6 @@ -// @generated by pegen.py from ./Grammar/python.gram #include "pegen.h" +// @generated by pegen.py from ./Grammar/python.gram #if defined(Py_DEBUG) && defined(Py_BUILD_CORE) extern int Py_DebugFlag; #define D(x) if (Py_DebugFlag) x; @@ -24735,7 +24735,12 @@ _PyPegen_parse(Parser *p) // Initialize keywords p->keywords = reserved_keywords; p->n_keyword_lists = n_keyword_lists; - + for (int s=0; s<p->n_keyword_lists;s++) { + KeywordToken *kk = p->keywords[s]; + if (kk) { + printf("--> %i %.*s\n", s,s, kk->str); + } + } // Run parser void *result = NULL; if (p->start_rule == Py_file_input) { Before crashing, this will print the following: --> 2 if --> 3 del --> 4 pass --> 5 raise --> 6 return --> 7 finally --> 8 --> 14 __peg_parser__ Segmentation fault (core dumped) Notice that the entry for size 8 is missing. I don't understand why is missing because the data is static and there is an entry there: static KeywordToken *reserved_keywords[] = { NULL, NULL, (KeywordToken[]) { {"if", 510}, {"in", 518}, {"as", 520}, {"is", 527}, {"or", 532}, {NULL, -1}, }, (KeywordToken[]) { {"del", 503}, {"try", 511}, {"for", 517}, {"def", 523}, {"not", 526}, {"and", 533}, {NULL, -1}, }, (KeywordToken[]) { {"pass", 502}, {"from", 514}, {"elif", 515}, {"else", 516}, {"with", 519}, {"True", 528}, {"None", 530}, {NULL, -1}, }, (KeywordToken[]) { {"raise", 501}, {"yield", 504}, {"break", 506}, {"while", 512}, {"class", 524}, {"False", 529}, {NULL, -1}, }, (KeywordToken[]) { {"return", 500}, {"assert", 505}, {"global", 508}, {"import", 513}, {"except", 521}, {"lambda", 525}, {NULL, -1}, }, (KeywordToken[]) { {"finally", 522}, {NULL, -1}, }, (KeywordToken[]) { {"continue", 507}, {"nonlocal", 509}, {NULL, -1}, }, NULL, NULL, NULL, NULL, NULL, (KeywordToken[]) { {"__peg_parser__", 531}, {NULL, -1}, }, }; |
|||
msg373098 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 11:48 | |
Ok, this is definitively something going on with XLC. This patch solves the segfault: diff --git a/Parser/pegen/parse.c b/Parser/pegen/parse.c index 9d3ac575df..e5511bf815 100644 --- a/Parser/pegen/parse.c +++ b/Parser/pegen/parse.c @@ -1,6 +1,6 @@ -// @generated by pegen.py from ./Grammar/python.gram -#include "pegen.h" +#include "pegen.h" +// @generated by pegen.py from ./Grammar/python.gram #if defined(Py_DEBUG) && defined(Py_BUILD_CORE) extern int Py_DebugFlag; #define D(x) if (Py_DebugFlag) x; @@ -9,8 +9,8 @@ extern int Py_DebugFlag; #endif static const int n_keyword_lists = 15; static KeywordToken *reserved_keywords[] = { - NULL, - NULL, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { {"if", 510}, {"in", 518}, @@ -65,11 +65,11 @@ static KeywordToken *reserved_keywords[] = { {"nonlocal", 509}, {NULL, -1}, }, - NULL, - NULL, - NULL, - NULL, - NULL, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { {"__peg_parser__", 531}, {NULL, -1}, @@ -24735,7 +24735,6 @@ _PyPegen_parse(Parser *p) // Initialize keywords p->keywords = reserved_keywords; p->n_keyword_lists = n_keyword_lists; - // Run parser void *result = NULL; if (p->start_rule == Py_file_input) { Is a C99 violation to have NULL elements in this array? (Michael, could you also double check that this patch solves it for you?) |
|||
msg373112 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 12:37 | |
This is enough to reproduce the problem: #include <stdio.h> typedef struct { char *str; int type; } KeywordToken; static KeywordToken *the_array[] = { NULL, NULL, (KeywordToken[]) { {"if", 510}, {"in", 518}, {"as", 520}, {"is", 527}, {"or", 532}, {NULL, -1}, }, NULL, NULL, (KeywordToken[]) { {"del11", 503}, {"try22", 511}, {NULL, -1}, }, NULL }; int main() { for (int s=0; s<7;s++) { KeywordToken *tok = the_array[s]; printf("--> %i\n",s); if (tok == NULL) { continue; } printf("--> %i %.*s\n", s,s, tok->str); } return 0; } [cpython (3.9)]$ xlc check_bad.c -o check_bad [cpython (3.9)]$ ./check_bad --> 0 --> 1 --> 2 Segmentation fault (core dumped) But if you change it to: #include <stdio.h> typedef struct { char *str; int type; } KeywordToken; static KeywordToken *the_array[] = { (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { {"if", 510}, {"in", 518}, {"as", 520}, {"is", 527}, {"or", 532}, {NULL, -1}, }, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { {"del11", 503}, {"try22", 511}, {NULL, -1}, }, (KeywordToken[]) {{NULL, -1}}, }; int main() { for (int s=0; s<7;s++) { KeywordToken *tok = the_array[s]; if (tok == NULL) { continue; } printf("--> %i %.*s\n", s,s, tok->str); } return 0; } [cpython (3.9)]$ xlc check.c -o check [cpython (3.9)]$ ./check --> 0 --> 1 --> 2 if --> 3 --> 4 --> 5 del11 --> 6 |
|||
msg373121 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-06 14:30 | |
Glad you figured it out! I doubt I would have. Thx!! On 06/07/2020 14:37, Pablo Galindo Salgado wrote: > Pablo Galindo Salgado <pablogsal@gmail.com> added the comment: > > This is enough to reproduce the problem: > > #include <stdio.h> > > typedef struct { > char *str; > int type; > } KeywordToken; > > static KeywordToken *the_array[] = { > NULL, > NULL, > (KeywordToken[]) { > {"if", 510}, > {"in", 518}, > {"as", 520}, > {"is", 527}, > {"or", 532}, > {NULL, -1}, > }, > NULL, > NULL, > (KeywordToken[]) { > {"del11", 503}, > {"try22", 511}, > {NULL, -1}, > }, > NULL > }; > > > int main() { > for (int s=0; s<7;s++) { > KeywordToken *tok = the_array[s]; > printf("--> %i\n",s); > if (tok == NULL) { > continue; > } > printf("--> %i %.*s\n", s,s, tok->str); > } > return 0; > } > > [cpython (3.9)]$ xlc check_bad.c -o check_bad > [cpython (3.9)]$ ./check_bad > --> 0 > --> 1 > --> 2 > Segmentation fault (core dumped) > > > But if you change it to: > > #include <stdio.h> > > typedef struct { > char *str; > int type; > } KeywordToken; > > static KeywordToken *the_array[] = { > (KeywordToken[]) {{NULL, -1}}, > (KeywordToken[]) {{NULL, -1}}, > (KeywordToken[]) { > {"if", 510}, > {"in", 518}, > {"as", 520}, > {"is", 527}, > {"or", 532}, > {NULL, -1}, > }, > (KeywordToken[]) {{NULL, -1}}, > (KeywordToken[]) {{NULL, -1}}, > (KeywordToken[]) { > {"del11", 503}, > {"try22", 511}, > {NULL, -1}, > }, > (KeywordToken[]) {{NULL, -1}}, > }; > > > int main() { > for (int s=0; s<7;s++) { > KeywordToken *tok = the_array[s]; > if (tok == NULL) { > continue; > } > printf("--> %i %.*s\n", s,s, tok->str); > } > return 0; > } > > [cpython (3.9)]$ xlc check.c -o check > [cpython (3.9)]$ ./check > --> 0 > --> 1 > --> 2 if > --> 3 > --> 4 > --> 5 del11 > --> 6 > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373123 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 14:35 | |
> Glad you figured it out! Well, this is not over ;) We should confirm that this is either a bug in XLC or a violation of C99 |
|||
msg373134 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-06 15:54 | |
On 06/07/2020 16:35, Pablo Galindo Salgado wrote: > Pablo Galindo Salgado <pablogsal@gmail.com> added the comment: > >> Glad you figured it out! > Well, this is not over ;) > > We should confirm that this is either a bug in XLC or a violation of C99 probably a bug (that they might call a difference of implementation). I have been testing with xlc-v11; shall also try (your simplified example) using v13 and v16. > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373136 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2020-07-06 16:13 | |
I don't believe that this is an XLC bug, but I suspect that it is undefined behavior / implementation-defined behavior. I suspect that this is tripping over AIX/XLC null behavior. AIX specifically and intentionally maps the first page of memory at address 0 to allow the compiler to speculate through NULL pointers. The compiler probably is speculating in this case and the second element is not defined. There is some option to disable this speculation in XLC. |
|||
msg373137 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-06 16:30 | |
I tried check.c and check_bad.c using xlc-v11 (on my POWER6) - and the results were the same as in Pablo's entry. On the gcc119 host - using the v13 compiler, check_bad does not crash. Not gotten to testing xlc-v16 yet. I have seen lots of options today - wheile researching, so probably, yes. Just do not know it off the top. Atm - testing "master" build using xlc-v11 and xlc-v13. On 06/07/2020 18:13, David Edelsohn wrote: > David Edelsohn <dje.gcc@gmail.com> added the comment: > > I don't believe that this is an XLC bug, but I suspect that it is undefined behavior / implementation-defined behavior. > > I suspect that this is tripping over AIX/XLC null behavior. AIX specifically and intentionally maps the first page of memory at address 0 to allow the compiler to speculate through NULL pointers. The compiler probably is speculating in this case and the second element is not defined. > > There is some option to disable this speculation in XLC. > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373143 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 16:57 | |
> I don't believe that this is an XLC bug, but I suspect that it is undefined behavior / implementation-defined behavior. I was looking at the C99 standard but could not find anything that makes this undefined. Do you know what this construct is contradicting the standard on? |
|||
msg373144 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-06 17:03 | |
Note: - two different systems, different HW, different OS levels. xlc-v11, master : commit deb016224cc506503fb05e821a60158c83918ed4 (HEAD -> master, upstream/master, upstream/HEAD) Segmentation fault in _PyEval_EvalFrameDefault at line 941 in file "../git/py39-3.10/Include/object.h" ($t1) "object.h" has only 659 lines (dbx) where _PyEval_EvalFrameDefault(tstate = 0x300af594, f = 0x00000017, throwflag = 15), line 941 in "object.h" _PyEval_EvalCode(tstate = 0x1001c454, _co = 0x30092520, globals = 0x2ff20190, locals = 0x10324213, args = 0x100b2798, argcount = 44, kwnames = 0x2ff201b0, kwargs = 0x2228228f, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x00000003, globals = 0x2ff20270, locals = 0x2ff20220, args = 0x2004426c, argcount = 806222336, kwnames = (nil), kwargs = 0x2ff20220, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4416 in "ceval.c" PyEval_EvalCodeEx(_co = 0x10110c74, globals = 0x20095072, locals = (nil), args = 0x300af598, argcount = 806024596, kws = 0x200950aa, kwcount = 537481208, defs = 0x300bcf10, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" builtin___build_class__(self = 0x100b8bdc, args = (nil), nargs = 804389664, kwnames = 0x2004426c), line 222 in "bltinmodule.c" cfunction_vectorcall_FASTCALL_KEYWORDS(func = 0x20060d88, args = 0x30046448, nargsf = 805553488, kwnames = 0x3004abb8), line 459 in "methodobject.c" _PyEval_EvalFrameDefault(tstate = 0x000001ff, f = 0x200012d0, throwflag = 804390000), line 628 in "abstract.h" _PyEval_EvalCode(tstate = 0x100d4eb4, _co = 0x3003f440, globals = 0x300b2ca8, locals = 0x300b516c, args = 0x300b5168, argcount = 805586012, kwnames = 0x30044450, kwargs = 0x30001028, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x3004abd8, globals = 0x300ac910, locals = 0x2ff205b0, args = 0x2004426c, argcount = 269191840, kwnames = 0x2ff2060c, kwargs = 0xffffffff, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4416 in "ceval.c" PyEval_EvalCodeEx(_co = 0x10090ab0, globals = 0x00000004, locals = 0x30062be8, args = (nil), argcount = 805624984, kws = 0x20060d88, kwcount = 804390432, defs = 0x00000004, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x103a1254, globals = 0x103a153e, locals = 0x300d1a48), line 857 in "ceval.c" builtin_exec_impl(module = 0x300b8ec8, source = 0x300671d8, globals = 0x2002af08, locals = 0x300af170), line 1035 in "bltinmodule.c" builtin_exec(module = 0x30059f6c, args = 0x30050d20, nargs = 804390720), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0x101c1120, args = 0x3006906c, nargsf = 805736544, kwnames = 0x2004426c), line 443 in "methodobject.c" PyVectorcall_Call(callable = 0xd0129a34, tuple = 0x3008c028, kwargs = 0x2ff207f0), line 249 in "call.c" _PyObject_Call(tstate = 0x100b259c, callable = 0x30027ce2, args = 0x2ff20850, kwargs = 0x0000000c), line 265 in "call.c" do_call_core(tstate = (nil), func = (nil), callargs = 0x3003c550, kwdict = 0x3004abb8), line 5142 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0xffffffff, f = 0x300b2268, throwflag = 805759592), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0x3005e9d8, _co = 0x30062290, globals = (nil), locals = 0x20026000, args = 0x300ac690, argcount = 805331176, kwnames = 0x2ff20a60, kwargs = 0x422822cf, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x300197c8, qualname = 0x300197c8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3005dbac, stack = (nil), nargsf = 805553488, kwnames = 0x30040960), line 417 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x30090e10, throwflag = 804391856), line 628 in "abstract.h" function_code_fastcall(tstate = 0x300a4568, co = 0x3004a1b0, args = 0x2000af50, nargs = 1, globals = 0x3004a688), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = (nil), f = 0x00000001, throwflag = 804392192), line 628 in "abstract.h" function_code_fastcall(tstate = 0x3009116c, co = 0x30031176, args = 0x30031160, nargs = 805622640, globals = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x20060d88, throwflag = 804392528), line 628 in "abstract.h" function_code_fastcall(tstate = 0x00000094, co = 0x000000ab, args = 0x3003c550, nargs = 805702704, globals = 0x3004abd8), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = (nil), f = (nil), throwflag = 804393056), line 628 in "abstract.h" function_code_fastcall(tstate = 0x3004ab90, co = 0x3004a7c8, args = 0x2ff21020, nargs = 537150060, globals = 0x10073f98), line 40 in "pycore_ceval.h" object_vacall(tstate = 0x2005ee98, base = 0x20060d88, callable = 0x2ff21080, vargs = warning: Unable to access address 0x482822cf from core (invalid char ptr (0x482822cf))), line 58 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = (nil), name = 0x20026118, ... = 0x300a9de0, 0x3003c5c8, 0x0, 0x3003ade8, 0x3003ad28, 0x3003ad48), line 901 in "call.c" import_find_and_load(tstate = 0x3003c5e8, abs_name = 0x300a9de0), line 1765 in "import.c" unnamed block in PyImport_ImportModuleLevelObject(name = 0x300074a0, globals = 0x300b41c0, locals = (nil), fromlist = 0x103918f0, level = 805307360), line 1885 in "import.c" PyImport_ImportModuleLevelObject(name = 0x300074a0, globals = 0x300b41c0, locals = (nil), fromlist = 0x103918f0, level = 805307360), line 1885 in "import.c" import_name(tstate = 0x20060d88, f = 0x30046448, name = 0x3003c550, fromlist = 0x3004abb8, level = 0x3004abd8), line 5234 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x000001ff, f = 0x200012d0, throwflag = 804393824), line 3120 in "ceval.c" _PyEval_EvalCode(tstate = 0x100d4eb4, _co = 0x3003f440, globals = 0x3008e908, locals = 0x30046f2c, args = 0x30046f28, argcount = 805586012, kwnames = 0x30044450, kwargs = 0x30001028, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x3004abd8, globals = 0x30090d48, locals = 0x2ff214a0, args = 0x2004426c, argcount = 269191840, kwnames = 0x2002e470, kwargs = 0xffffffff, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4416 in "ceval.c" PyEval_EvalCodeEx(_co = 0x10090ab0, globals = 0x00000004, locals = 0x30062be8, args = (nil), argcount = 805624984, kws = 0x20060d88, kwcount = 804394256, defs = 0x00000004, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x103a1254, globals = 0x103a153e, locals = 0x300b41c0), line 857 in "ceval.c" builtin_exec_impl(module = 0x300b2288, source = 0x300671d8, globals = 0x2002af08, locals = 0x300af170), line 1035 in "bltinmodule.c" builtin_exec(module = 0x30059f6c, args = 0x30050d20, nargs = 804394544), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0x101c1120, args = 0x3006906c, nargsf = 805736544, kwnames = 0x2004426c), line 443 in "methodobject.c" PyVectorcall_Call(callable = 0xd0129a34, tuple = 0x3008c028, kwargs = 0x2ff216e0), line 249 in "call.c" _PyObject_Call(tstate = 0x100b259c, callable = 0x30027ce2, args = 0x2ff21740, kwargs = 0x0000000c), line 265 in "call.c" do_call_core(tstate = (nil), func = (nil), callargs = 0x3003c550, kwdict = 0x3004abb8), line 5142 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0xffffffff, f = 0x3008e188, throwflag = 805758120), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0x3005e9d8, _co = 0x30062290, globals = (nil), locals = 0x20026000, args = 0x30090d20, argcount = 805331176, kwnames = 0x2ff21950, kwargs = 0x422822cf, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x300197c8, qualname = 0x300197c8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3005d8bc, stack = (nil), nargsf = 805553488, kwnames = 0x30040960), line 417 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x30088a00, throwflag = 804395680), line 628 in "abstract.h" function_code_fastcall(tstate = 0x30087520, co = 0x3004a1b0, args = 0x2000af50, nargs = 1, globals = 0x3004a688), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = (nil), f = 0x00000001, throwflag = 804396016), line 628 in "abstract.h" function_code_fastcall(tstate = 0x3004289c, co = 0x30031176, args = 0x30031160, nargs = 805622640, globals = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x20060d88, throwflag = 804396352), line 628 in "abstract.h" function_code_fastcall(tstate = 0x00000094, co = 0x000000ab, args = 0x3003c550, nargs = 0, globals = 0x3004abd8), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x102e59dc, f = (nil), throwflag = 804396880), line 628 in "abstract.h" function_code_fastcall(tstate = 0x3004ab90, co = 0x3004a7c8, args = 0x2ff21f10, nargs = 537150060, globals = 0x10073f98), line 40 in "pycore_ceval.h" object_vacall(tstate = 0x2005ee98, base = 0x20060d88, callable = 0x2ff21f70, vargs = warning: Unable to access address 0x482822cf from core (invalid char ptr (0x482822cf))), line 58 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = (nil), name = 0x20026118, ... = 0x3008d520, 0x3003c5c8, 0x0, 0x3003ade8, 0x3003ad28, 0x3003ad48), line 901 in "call.c" import_find_and_load(tstate = 0x2003e4a0, abs_name = (nil)), line 1765 in "import.c" unnamed block in PyImport_ImportModuleLevelObject(name = 0x30085e10, globals = (nil), locals = 0x103a18c0, fromlist = 0x20037780, level = 804397264), line 1885 in "import.c" PyImport_ImportModuleLevelObject(name = 0x30085e10, globals = (nil), locals = 0x103a18c0, fromlist = 0x20037780, level = 804397264), line 1885 in "import.c" builtin___import__(self = 0x100bead4, args = 0x00000010, kwds = 0x2ff22140), line 280 in "bltinmodule.c" cfunction_call(func = 0x20060d88, args = 0x3003c528, kwargs = (nil)), line 537 in "methodobject.c" _PyObject_MakeTpCall(tstate = (nil), callable = 0x2ff2227c, args = 0x2ff22220, nargs = 673718991, keywords = 0x100bc874), line 197 in "call.c" _PyObject_CallFunctionVa(tstate = 0xa23d56d8, callable = (nil), format = warning: Unable to access address 0xdeadbeef from core (invalid char ptr (0xdeadbeef)), va = (nil), is_size_t = 0), line 65592 in "abstract.h" PyObject_CallFunction(callable = 0x3003c5c8, format = "OOOOi", ... = 0x3008d520, 0x30085e60, 0x30085e60, 0x3006afe8, 0x0, 0x0), line 583 in "call.c" PyImport_Import(module_name = 0x2ff22460), line 2086 in "import.c" PyImport_ImportModule(name = "\200A"), line 1482 in "import.c" PyImport_ImportModuleNoBlock(name = "`"), line 1500 in "import.c" _PyCodecRegistry_Init(), line 1547 in "codecs.c" _PyCodec_Forget(encoding = warning: Unable to access address 0xa23d56d8 from core (invalid char ptr (0xa23d56d8))), line 128 in "codecs.c" init_stdio_encoding(tstate = 0x2ff22534), line 15996 in "unicodeobject.c" init_fs_encoding(tstate = 0x20008148), line 16110 in "unicodeobject.c" _PyUnicode_InitEncodings(tstate = 0x200010f0), line 16126 in "unicodeobject.c" init_interp_main(tstate = 0x00000001), line 1016 in "pylifecycle.c" pyinit_main(tstate = 0x200010f0), line 1107 in "pylifecycle.c" Py_InitializeFromConfig(config = (nil)), line 1151 in "pylifecycle.c" pymain_init(args = 0xf066a338), line 66 in "main.c" pymain_main(args = 0x00000001), line 694 in "main.c" Py_BytesMain(argc = -559038737, argv = 0xdeadbeef), line 727 in "main.c" python.main(argc = 0, argv = (nil)), line 15 in "python.c" (dbx) +++++++++++++ xlc-v13 +++++++++++++ Looks about the same: master : commit deb016224cc506503fb05e821a60158c83918ed4 aixtools@gcc119:[/home/aixtools/python/cpython]dbx ./python core Type 'help' for help. [using memory image in core] reading symbolic information ... Segmentation fault in _PyEval_EvalFrameDefault at line 1125 in file "Include/object.h" ($t1) "object.h" has only 659 lines (dbx) where _PyEval_EvalFrameDefault(tstate = 0x100f6370, f = (nil), throwflag = 537443004), line 1125 in "object.h" _PyEval_EvalCode(tstate = 0x1001eb04, _co = 0x30039ae8, globals = 0x2ff1ffc0, locals = 0x20044858, args = 0x1001ede4, argcount = 806047904, kwnames = 0x2ff1ffa0, kwargs = 0x103b0233, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x1013e6b8, globals = 0x300ae5a0, locals = 0x300bcec8, args = 0x20044858, argcount = 536872576, kwnames = (nil), kwargs = 0x2ff20030, kwcount = -2077998513, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4397 in "ceval.c" PyEval_EvalCodeEx(_co = 0x101332d0, globals = 0x2000d9a8, locals = 0x300ae598, args = 0x2009d4ba, argcount = 537515016, kws = 0x30083e68, kwcount = 805435232, defs = 0x300bcec8, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" builtin___build_class__(self = 0x100bab9c, args = 0x3003c550, nargs = 804389168, kwnames = 0x20044858), line 222 in "bltinmodule.c" cfunction_vectorcall_FASTCALL_KEYWORDS(func = 0x100fbdb4, args = 0x300d0538, nargsf = 804389264, kwnames = 0x20044858), line 459 in "methodobject.c" _PyEval_EvalFrameDefault(tstate = 0x30016988, f = 0x200673d8, throwflag = 805399252), line 812 in "abstract.h" _PyEval_EvalCode(tstate = 0x00000004, _co = 0x200654a4, globals = 0x00000043, locals = 0x00000001, args = (nil), argcount = 537293784, kwnames = 0x300b716c, kwargs = 0x3004447c, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x200654ac, globals = 0x300dce38, locals = 0x300abd20, args = 0x300b1ca8, argcount = 806169160, kwnames = 0x300abd20, kwargs = 0x2ff203d0, kwcount = 804390176, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4397 in "ceval.c" PyEval_EvalCodeEx(_co = 0x100abe24, globals = 0x200654a4, locals = 0x300ae190, args = 0x10407c00, argcount = 806019444, kws = 0x200673d8, kwcount = 804389952, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x101fb228, globals = 0x10417960, locals = 0x300d2a48), line 857 in "ceval.c" IPRA.$builtin_exec_impl(module = 0x1008cd6c, source = 0x30046448, globals = 0x2ff204d0, locals = 0x20044858), line 1035 in "bltinmodule.c" builtin_exec(module = 0x30059f7c, args = (nil), nargs = 805536424), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0x200003c8, args = 0x300b8e60, nargsf = 804390272, kwnames = 0x200673d8), line 424 in "methodobject.c" PyVectorcall_Call(callable = 0x100f94b4, tuple = 0x20006888, kwargs = 0x2ff20600), line 249 in "call.c" _PyObject_Call(tstate = 0x300b7028, callable = 0x200673d8, args = 0x2ff20640, kwargs = 0x10407c00), line 265 in "call.c" do_call_core(tstate = (nil), func = (nil), callargs = 0x2ff206a0, kwdict = 0x3004abb8), line 5130 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x30027cb0, f = 0x30063aa8, throwflag = 805628416), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0x300462e8, _co = 0x200673d8, globals = 0x2ff20840, locals = 0x48242242, args = 0x1008ddd0, argcount = 805896992, kwnames = 0x2ff20840, kwargs = 0x20044858, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x300197c8, qualname = 0x300197c8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x100b2d30, stack = 0x200654a4, nargsf = 804391088, kwnames = 0x3000c254), line 398 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x3004a098, f = 0x30090320, throwflag = 804391328), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = 0x1008bc64, co = 0x200673d8, args = 0x2ff20a00, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = 0x1008bc64, co = 0x200673d8, args = 0x2ff20a00, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x10141878, stack = 0x3004a1b0, nargsf = 804391520, kwnames = 0x10407c00), line 366 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200324d0, f = 0x30056c88, throwflag = 805698224), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200654a4, args = 0x2ff20bc0, nargs = 537151576, globals = 0x3005f958), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200654a4, args = 0x2ff20bc0, nargs = 537151576, globals = 0x3005f958), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x200654ac, stack = 0x200654a4, nargsf = 805904756, kwnames = 0x3003116e), line 366 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x100b4834, f = 0x30035b40, throwflag = 804392240), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200673d8, args = 0x2ff20d80, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200673d8, args = 0x2ff20d80, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0xd0584b0c, stack = 0x200673d8, nargsf = 537285796, kwnames = 0xf02ff01c), line 366 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x10085584, f = 0x300a9da0, throwflag = 805547336), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = (nil), co = (nil), args = 0x2ff20f40, nargs = 805508802, globals = 0x10058d4c), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = (nil), co = (nil), args = 0x2ff20f40, nargs = 805508802, globals = 0x10058d4c), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3004a7c8, stack = 0x3004ab90, nargsf = 804392896, kwnames = (nil)), line 366 in "call.c" IPRA.$object_vacall(tstate = 0x100a8ee8, base = 0x30035ac8, callable = 0x2ff21030, vargs = "j^Aj^B|^Ak^Er2|"), line 58 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = 0x300a9da0, name = 0x2000d9f0, ... = 0x300a9da0, 0x3003c5c8, 0x0, 0x3003ae08, 0x3003ad48, 0x3003ad68), line 901 in "call.c" IPRA.$import_find_and_load(tstate = 0x300b3028, abs_name = 0x200673d8), line 1765 in "import.c" PyImport_ImportModuleLevelObject(name = 0x00000002, globals = 0x200654a4, locals = 0x2ff21160, fromlist = 0x00000001, level = 269199964), line 1866 in "import.c" IPRA.$import_name(tstate = 0x100fbdb4, f = 0x300b2ad8, name = 0x2ff211c0, fromlist = 0x20044858, level = 0x100c57c8), line 5234 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x30016988, f = 0x200673d8, throwflag = 805399252), line 3120 in "ceval.c" _PyEval_EvalCode(tstate = 0x00000004, _co = 0x200654a4, globals = 0x00000043, locals = 0x00000001, args = (nil), argcount = 537293784, kwnames = 0x30046f2c, kwargs = 0x3004447c, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x200654ac, globals = 0x30090208, locals = 0x30090190, args = 0x3008e8c8, argcount = 806027712, kwnames = 0x30090190, kwargs = 0x2ff21400, kwcount = 804394320, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4397 in "ceval.c" PyEval_EvalCodeEx(_co = 0x100abe24, globals = 0x200654a4, locals = (nil), args = 0x10407c00, argcount = 536914064, kws = 0x200673d8, kwcount = 804394096, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x101fb228, globals = 0x10417960, locals = 0x300b01c0), line 857 in "ceval.c" IPRA.$builtin_exec_impl(module = 0x1008cd6c, source = 0x30046448, globals = 0x2ff21500, locals = 0x20044858), line 1035 in "bltinmodule.c" builtin_exec(module = 0x2006fcd8, args = 0x30068028, nargs = 805740328), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0x200003c8, args = 0x300b1220, nargsf = 804394416, kwnames = 0x200673d8), line 424 in "methodobject.c" PyVectorcall_Call(callable = 0x100f94b4, tuple = 0x20006888, kwargs = 0x2ff21630), line 249 in "call.c" _PyObject_Call(tstate = 0x30046de8, callable = 0x200673d8, args = 0x2ff21670, kwargs = 0x10407c00), line 265 in "call.c" do_call_core(tstate = (nil), func = (nil), callargs = 0x2ff216d0, kwdict = 0x3004abb8), line 5130 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x30027cb0, f = 0x30063aa8, throwflag = 805628416), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0x30046c88, _co = 0x200673d8, globals = 0x2ff21870, locals = 0x48242242, args = 0x1008ddd0, argcount = 805896512, kwnames = 0x2ff21870, kwargs = 0x20044858, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x300197c8, qualname = 0x300197c8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x100b2d30, stack = 0x200654a4, nargsf = 805685444, kwnames = 0x3000c254), line 398 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x3004a098, f = 0x30090140, throwflag = 804395472), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = 0x1008bc64, co = 0x200673d8, args = 0x2ff21a30, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = 0x1008bc64, co = 0x200673d8, args = 0x2ff21a30, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x10141878, stack = 0x3004a1b0, nargsf = 804395664, kwnames = 0x10407c00), line 366 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x200324d0, f = 0x30056c88, throwflag = 805696656), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200654a4, args = 0x2ff21bf0, nargs = 537151576, globals = 0x3005f338), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200654a4, args = 0x2ff21bf0, nargs = 537151576, globals = 0x3005f338), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x200654ac, stack = 0x200654a4, nargsf = 805578916, kwnames = 0x3003116e), line 366 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x100b4834, f = 0x30035b40, throwflag = 804396384), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200673d8, args = 0x2ff21db0, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = 0x100b6a14, co = 0x200673d8, args = 0x2ff21db0, nargs = 537151576, globals = 0x1008ddd0), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x30040788, stack = 0x30067f40, nargsf = 804396592, kwnames = 0x2ff21f68), line 366 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x10085584, f = 0x3008d930, throwflag = 805547336), line 812 in "abstract.h" unnamed block in IPRA.$function_code_fastcall(tstate = 0x10396408, co = 0x10351cc8, args = 0x2ff21f70, nargs = -559038737, globals = 0x10058d4c), line 40 in "pycore_ceval.h" IPRA.$function_code_fastcall(tstate = 0x10396408, co = 0x10351cc8, args = 0x2ff21f70, nargs = -559038737, globals = 0x10058d4c), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3004a7c8, stack = 0x3004ab90, nargsf = 804397040, kwnames = (nil)), line 366 in "call.c" IPRA.$object_vacall(tstate = 0x100a8ee8, base = 0x30035ac8, callable = 0x2ff22060, vargs = ""), line 58 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = 0x3008d930, name = 0x2000d9f0, ... = 0x3008d930, 0x3003c5c8, 0x0, 0x3003ae08, 0x3003ad48, 0x3003ad68), line 901 in "call.c" IPRA.$import_find_and_load(tstate = 0x300872a8, abs_name = 0x3003c5c8), line 1765 in "import.c" PyImport_ImportModuleLevelObject(name = 0x100b3b8c, globals = 0x30087258, locals = 0x2ff22180, fromlist = 0x20037f68, level = 804397424), line 1866 in "import.c" builtin___import__(self = 0x100c0e34, args = 0xdeadbeef, kwds = 0x3003c528), line 280 in "bltinmodule.c" cfunction_call(func = 0x103a3ee8, args = 0x200673d8, kwargs = (nil)), line 556 in "methodobject.c" _PyObject_MakeTpCall(tstate = 0x1009c318, callable = 0x3003c528, args = (nil), nargs = 537151576, keywords = 0x1008cd6c), line 191 in "call.c" IPRA.$_PyObject_CallFunctionVa(tstate = 0x00000006, callable = 0x2ff22b98, format = "/\362,Z/\362,e/\362,p/\362,\177/\362,\223/\362,\244/\362,\306/\362-R/\362-c/\362-v/\362-\207/\362-\225/\362-\263/\362-\314/\362-\347/\362-\365/\362.^F/\362.^P/\362.^^/\362.3/\362.G/\362.j/\362.\236/\362.\251/\362.\305/\362.\347/\362.\357/\362.\376", va = "0^F\177\2300^F\177\2000^H\33100", is_size_t = -559038737), line 65592 in "abstract.h" PyObject_CallFunction(callable = 0x103a5bf8, format = "OOOOi", ... = 0x3008d930, 0x300872a8, 0x300872a8, 0x3006bf88, 0x0, 0x0), line 564 in "call.c" PyImport_Import(module_name = 0x10132904), line 2086 in "import.c" PyImport_ImportModule(name = ""), line 1482 in "import.c" _PyCodecRegistry_Init(), line 1547 in "codecs.c" _PyCodec_Forget(encoding = warning: Unable to access address 0x460d2abe from core (invalid char ptr (0x460d2abe))), line 128 in "codecs.c" init_stdio_encoding(tstate = 0x00000008), line 15996 in "unicodeobject.c" init_fs_encoding(tstate = 0x2ff22600), line 16110 in "unicodeobject.c" _PyUnicode_InitEncodings(tstate = (nil)), line 16126 in "unicodeobject.c" IPRA.$init_interp_main(tstate = 0x00000001), line 1016 in "pylifecycle.c" pyinit_main(tstate = (nil)), line 1107 in "pylifecycle.c" Py_InitializeFromConfig(config = 0xf0301cd4), line 1151 in "pylifecycle.c" IPRA.$pymain_init(args = 0x2ff22aa0), line 66 in "main.c" pymain_main(args = 0x00000006), line 694 in "main.c" Py_BytesMain(argc = -559038737, argv = 0xdeadbeef), line 727 in "main.c" python.main(argc = 0, argv = (nil)), line 15 in "python.c" (dbx) On 06/07/2020 18:57, Pablo Galindo Salgado wrote: > Pablo Galindo Salgado <pablogsal@gmail.com> added the comment: > >> I don't believe that this is an XLC bug, but I suspect that it is undefined behavior / implementation-defined behavior. > I was looking at the C99 standard but could not find anything that makes this undefined. Do you know what this construct is contradicting the standard on? > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373146 - (view) | Author: David Edelsohn (David.Edelsohn) * | Date: 2020-07-06 17:10 | |
Maybe XLC was being overly aggressive with speculation and it now is fixed. I can't tell if Michael's earlier comment meant that it no longer crashes with XLC v16. |
|||
msg373148 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 17:13 | |
Well, in any case, I will submit a patch today to the parser generator to substitute the NULL for single-element arrays which seems to work. Michael, could you confirm that this patch works for you: diff --git a/Parser/pegen/parse.c b/Parser/pegen/parse.c index 9d3ac575df..e5511bf815 100644 --- a/Parser/pegen/parse.c +++ b/Parser/pegen/parse.c @@ -1,6 +1,6 @@ -// @generated by pegen.py from ./Grammar/python.gram -#include "pegen.h" +#include "pegen.h" +// @generated by pegen.py from ./Grammar/python.gram #if defined(Py_DEBUG) && defined(Py_BUILD_CORE) extern int Py_DebugFlag; #define D(x) if (Py_DebugFlag) x; @@ -9,8 +9,8 @@ extern int Py_DebugFlag; #endif static const int n_keyword_lists = 15; static KeywordToken *reserved_keywords[] = { - NULL, - NULL, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { {"if", 510}, {"in", 518}, @@ -65,11 +65,11 @@ static KeywordToken *reserved_keywords[] = { {"nonlocal", 509}, {NULL, -1}, }, - NULL, - NULL, - NULL, - NULL, - NULL, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, + (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { {"__peg_parser__", 531}, {NULL, -1}, @@ -24735,7 +24735,6 @@ _PyPegen_parse(Parser *p) // Initialize keywords p->keywords = reserved_keywords; p->n_keyword_lists = n_keyword_lists; - // Run parser void *result = NULL; if (p->start_rule == Py_file_input) { |
|||
msg373149 - (view) | Author: Lysandros Nikolaou (lys.nikolaou) * | Date: 2020-07-06 17:16 | |
Pablo, I can do that as well, if you don't have the time. |
|||
msg373154 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 18:35 | |
> Pablo, I can do that as well, if you don't have the time. Thanks! I had the PR ready, just needed some time to push it :) |
|||
msg373160 - (view) | Author: miss-islington (miss-islington) | Date: 2020-07-06 19:30 | |
New changeset 54f115dd533653c43b3c5541bf5936b22e484474 by Pablo Galindo in branch '3.9': [3.9] bpo-41215: Don't use NULL by default in the PEG parser keyword list (GH-21355) (GH-21356) https://github.com/python/cpython/commit/54f115dd533653c43b3c5541bf5936b22e484474 |
|||
msg373161 - (view) | Author: miss-islington (miss-islington) | Date: 2020-07-06 19:31 | |
New changeset 1ac0cbca369f16f9191833dd54536482fb141a98 by Pablo Galindo in branch 'master': bpo-41215: Don't use NULL by default in the PEG parser keyword list (GH-21355) https://github.com/python/cpython/commit/1ac0cbca369f16f9191833dd54536482fb141a98 |
|||
msg373173 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-06 21:04 | |
I also tested xlC v16, and then it just hung, for hours - while all of you were being more productive. I’ll kickoff my bot again, and see how it goes. Sent from my iPhone > On 6 Jul 2020, at 21:31, miss-islington <report@bugs.python.org> wrote: > > > miss-islington <mariatta.wijaya+miss-islington@gmail.com> added the comment: > > > New changeset 1ac0cbca369f16f9191833dd54536482fb141a98 by Pablo Galindo in branch 'master': > bpo-41215: Don't use NULL by default in the PEG parser keyword list (GH-21355) > https://github.com/python/cpython/commit/1ac0cbca369f16f9191833dd54536482fb141a98 > > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373178 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 21:34 | |
Michael, could you check the latest master and 3.9 HEAD? If you don;t see the problem anymore, we can close this issue :) |
|||
msg373179 - (view) | Author: Lysandros Nikolaou (lys.nikolaou) * | Date: 2020-07-06 21:38 | |
Pablo, on second thought, should we maybe change the assertion to `assert(name_len > 0)`? |
|||
msg373182 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-06 21:48 | |
> Pablo, on second thought, should we maybe change the assertion to `assert(name_len > 0)`? Yup, although not sure how that can happen (but I agree that's the point of assertions *wink*) Can you prepare a PR? |
|||
msg373188 - (view) | Author: Lysandros Nikolaou (lys.nikolaou) * | Date: 2020-07-06 22:26 | |
> Can you prepare a PR? Done. |
|||
msg373191 - (view) | Author: Lysandros Nikolaou (lys.nikolaou) * | Date: 2020-07-06 22:42 | |
New changeset 782f44b8fb07ec33cee148b2b6b4cf53024fe0cd by Lysandros Nikolaou in branch 'master': bpo-41215: Make assertion in the new parser more strict (GH-21364) https://github.com/python/cpython/commit/782f44b8fb07ec33cee148b2b6b4cf53024fe0cd |
|||
msg373195 - (view) | Author: miss-islington (miss-islington) | Date: 2020-07-06 23:35 | |
New changeset edeaf61b6827ab3a8673aff1fb7717917f08f003 by Miss Islington (bot) in branch '3.9': bpo-41215: Make assertion in the new parser more strict (GH-21364) https://github.com/python/cpython/commit/edeaf61b6827ab3a8673aff1fb7717917f08f003 |
|||
msg373211 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-07 09:12 | |
I saw the mails last night and restarted my bot - it still fails. Checking manually for master, 3.9, 3.8 and 3.7 branches. Will let you know asap. Yes - expecting 3.8 and 3.7 to build, but want to be sure. On 06/07/2020 23:34, Pablo Galindo Salgado wrote: > Pablo Galindo Salgado <pablogsal@gmail.com> added the comment: > > Michael, could you check the latest master and 3.9 HEAD? If you don;t see the problem anymore, we can close this issue :) > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373215 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-07 10:12 | |
On 07/07/2020 11:12, Michael Felt wrote: > Michael Felt <aixtools@felt.demon.nl> added the comment: > > I saw the mails last night and restarted my bot - it still fails. > Checking manually for master, 3.9, 3.8 and 3.7 branches. Will let you 3.7, 3.8 and 3.9 built, master does not. Will provide more info on master later. > know asap. > > Yes - expecting 3.8 and 3.7 to build, but want to be sure. > > On 06/07/2020 23:34, Pablo Galindo Salgado wrote: >> Pablo Galindo Salgado <pablogsal@gmail.com> added the comment: >> >> Michael, could you check the latest master and 3.9 HEAD? If you don;t see the problem anymore, we can close this issue :) >> >> ---------- >> >> _______________________________________ >> Python tracker <report@bugs.python.org> >> <https://bugs.python.org/issue41215> >> _______________________________________ >> > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373217 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-07 10:45 | |
Master has to be something else then.... |
|||
msg373223 - (view) | Author: Michael Felt (Michael.Felt) * | Date: 2020-07-07 12:22 | |
Here is the stack trace - still during initialization: And in "ceval.c, but dbx does not like how the 'h files are being used: line 941 and 659 lines don't match :( (dbx) list "object.h" has only 659 lines Segmentation fault in _PyEval_EvalFrameDefault at line 941 in file "../git/py39-3.10/Include/object.h" ($t1) "object.h" has only 659 lines (dbx) where _PyEval_EvalFrameDefault(tstate = 0x3009c9d0, f = 0x00000017, throwflag = 15), line 941 in "object.h" _PyEval_EvalCode(tstate = 0x1001c454, _co = 0x3009c250, globals = 0x2ff20260, locals = 0x10324233, args = 0x100b2798, argcount = 44, kwnames = 0x2ff20280, kwargs = 0x2228228f, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x00000003, globals = 0x2ff20340, locals = 0x2ff202f0, args = 0x2004429c, argcount = 805945904, kwnames = (nil), kwargs = 0x2ff202f0, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4416 in "ceval.c" PyEval_EvalCodeEx(_co = 0x10110c74, globals = 0x200817a2, locals = (nil), args = 0x30091598, argcount = 805901716, kws = 0x200817da, kwcount = 537401128, defs = 0x30078f58, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" builtin___build_class__(self = 0x100b8bdc, args = (nil), nargs = 804389872, kwnames = 0x2004429c), line 222 in "bltinmodule.c" cfunction_vectorcall_FASTCALL_KEYWORDS(func = 0x100d5e54, args = (nil), nargsf = 805553488, kwnames = 0x3004658c), line 459 in "methodobject.c" _PyEval_EvalFrameDefault(tstate = 0x300912d8, f = 0x30050c8c, throwflag = 805485032), line 628 in "abstract.h" _PyEval_EvalCode(tstate = 0x10110c74, _co = 0x3004abb8, globals = 0x30095fa8, locals = 0x3009d16c, args = 0x3009d168, argcount = 805586012, kwnames = 0x30044450, kwargs = 0x30001028, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x3004abd8, globals = 0x30092258, locals = 0x2ff20680, args = 0x2004429c, argcount = 269191840, kwnames = 0x300550e0, kwargs = 0x2ff20680, kwcount = 1109926476, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4416 in "ceval.c" PyEval_EvalCodeEx(_co = 0x10090ab0, globals = (nil), locals = 0xf0653ea8, args = 0xf0653ea8, argcount = 0, kws = 0x20082720, kwcount = 804390704, defs = 0x2228228f, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x103a1274, globals = 0x103a155e, locals = 0x30099978), line 857 in "ceval.c" builtin_exec_impl(module = 0x300912c4, source = 0x30050cb8, globals = 0x20060a78, locals = 0x00000002), line 1035 in "bltinmodule.c" builtin_exec(module = 0x100d58b4, args = 0x30050cb8, nargs = 0), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0xffffffff, args = 0x30050b80, nargsf = 804391008, kwnames = 0x2004429c), line 443 in "methodobject.c" PyVectorcall_Call(callable = 0x1001e5cc, tuple = 0x20060a78, kwargs = 0x2ff208c0), line 249 in "call.c" _PyObject_Call(tstate = 0x100b259c, callable = 0x30027ce2, args = 0x2ff20920, kwargs = 0x2004429c), line 265 in "call.c" do_call_core(tstate = 0x00000002, func = 0x20026bc0, callargs = 0x2ff20990, kwdict = 0x3004abb8), line 5142 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0xffffffff, f = 0x3004a070, throwflag = 804391536), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0x3005e9b0, _co = 0x30062290, globals = (nil), locals = 0x20026020, args = 0x300922f8, argcount = 805331176, kwnames = 0x2ff20b30, kwargs = 0x422822cf, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x300197c8, qualname = 0x300197c8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3005dbac, stack = (nil), nargsf = 805553488, kwnames = 0x30040960), line 417 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x300921b8, throwflag = 804392064), line 628 in "abstract.h" function_code_fastcall(tstate = 0x30087538, co = 0x3004a1b0, args = 0x2000af70, nargs = 1, globals = 0x3004a688), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = (nil), f = 0x00000001, throwflag = 804392400), line 628 in "abstract.h" function_code_fastcall(tstate = 0x30042fcc, co = 0x30031176, args = 0x30031160, nargs = 805622640, globals = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x20060a78, throwflag = 804392736), line 628 in "abstract.h" function_code_fastcall(tstate = 0x000000e0, co = 0x0000009c, args = 0x3003c550, nargs = -528718917, globals = 0x3004abd8), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = (nil), f = (nil), throwflag = 804393264), line 628 in "abstract.h" function_code_fastcall(tstate = 0x3004ab90, co = 0x3004a7c8, args = 0x2ff210f0, nargs = 537150108, globals = 0x10073f98), line 40 in "pycore_ceval.h" object_vacall(tstate = 0x2005ec18, base = 0x20060a78, callable = 0x2ff21150, vargs = warning: Unable to access address 0x482822cf from core (invalid char ptr (0x482822cf))), line 58 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = (nil), name = 0x20026138, ... = 0x3008e920, 0x3003c5c8, 0x0, 0x3003ade8, 0x3003ad28, 0x3003ad48), line 901 in "call.c" import_find_and_load(tstate = 0x3003c5e8, abs_name = 0x3008e920), line 1765 in "import.c" unnamed block in PyImport_ImportModuleLevelObject(name = 0x100b7374, globals = 0x300930f0, locals = (nil), fromlist = 0x10391910, level = 805307360), line 1885 in "import.c" PyImport_ImportModuleLevelObject(name = 0x100b7374, globals = 0x300930f0, locals = (nil), fromlist = 0x10391910, level = 805307360), line 1885 in "import.c" import_name(tstate = 0x100d5e54, f = (nil), name = 0x3003c550, fromlist = 0x3004658c, level = 0x3004abd8), line 5234 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0x300912d8, f = 0x30050c8c, throwflag = 805485032), line 3120 in "ceval.c" _PyEval_EvalCode(tstate = 0x30091190, _co = 0x3004abb8, globals = 0x3008ea28, locals = 0x3004642c, args = 0x30046428, argcount = 805586012, kwnames = 0x30044450, kwargs = 0x30001028, kwcount = 0, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalCodeWithName(_co = 0x3004abd8, globals = 0x30090d48, locals = 0x2ff21570, args = 0x2004429c, argcount = 269191840, kwnames = 0x300550e0, kwargs = 0x2ff21570, kwcount = -2111298996, kwstep = 2, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = (nil), qualname = (nil)), line 4416 in "ceval.c" PyEval_EvalCodeEx(_co = 0x10090ab0, globals = (nil), locals = 0xf0653ea8, args = 0xf0653ea8, argcount = 0, kws = 0x20082720, kwcount = 804394528, defs = 0x222822cf, defcount = 0, kwdefs = (nil), closure = (nil)), line 4415 in "ceval.c" PyEval_EvalCode(co = 0x103a1274, globals = 0x103a155e, locals = 0x300930f0), line 857 in "ceval.c" builtin_exec_impl(module = 0x300912c4, source = 0x30050cb8, globals = 0x20060a78, locals = 0x00000002), line 1035 in "bltinmodule.c" builtin_exec(module = 0x100d58b4, args = 0x30050cb8, nargs = 0), line 371 in "bltinmodule.c.h" cfunction_vectorcall_FASTCALL(func = 0xffffffff, args = 0x30050b80, nargsf = 804394832, kwnames = 0x2004429c), line 443 in "methodobject.c" PyVectorcall_Call(callable = 0x2ff21870, tuple = 0x30003870, kwargs = 0x2ff217d0), line 249 in "call.c" _PyObject_Call(tstate = 0x100b259c, callable = 0x30027ce2, args = 0x2ff21810, kwargs = 0x0000000c), line 265 in "call.c" do_call_core(tstate = 0x00000002, func = 0x20026bc0, callargs = 0x2ff21880, kwdict = 0x3004abb8), line 5142 in "ceval.c" _PyEval_EvalFrameDefault(tstate = 0xffffffff, f = 0x3004a070, throwflag = 804395360), line 3603 in "ceval.c" _PyEval_EvalCode(tstate = 0x3005e9b0, _co = 0x30062290, globals = (nil), locals = 0x20026020, args = 0x30090d20, argcount = 805331176, kwnames = 0x2ff21a20, kwargs = 0x422822cc, kwcount = 0, kwstep = 1, defs = (nil), defcount = 0, kwdefs = (nil), closure = (nil), name = 0x300197c8, qualname = 0x300197c8), line 40 in "pycore_ceval.h" _PyFunction_Vectorcall(func = 0x3005d8bc, stack = (nil), nargsf = 805553488, kwnames = 0x30040960), line 417 in "call.c" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x300889d8, throwflag = 804395888), line 628 in "abstract.h" function_code_fastcall(tstate = 0x30087478, co = 0x3004a1b0, args = 0x2000af70, nargs = 1, globals = 0x3004a688), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = (nil), f = 0x00000001, throwflag = 804396224), line 628 in "abstract.h" function_code_fastcall(tstate = 0x3004289c, co = 0x30031176, args = 0x30031160, nargs = 805622640, globals = (nil)), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x10075ac4, f = 0x20060a78, throwflag = 804396560), line 628 in "abstract.h" function_code_fastcall(tstate = 0x000000e0, co = 0x0000009c, args = 0x3003c550, nargs = 0, globals = 0x3004abd8), line 40 in "pycore_ceval.h" _PyEval_EvalFrameDefault(tstate = 0x102e59fc, f = (nil), throwflag = 804397088), line 628 in "abstract.h" function_code_fastcall(tstate = 0x3004ab90, co = 0x3004a7c8, args = 0x2ff21fe0, nargs = 537150108, globals = 0x10073f98), line 40 in "pycore_ceval.h" object_vacall(tstate = 0x2005ec18, base = 0x20060a78, callable = 0x2ff22040, vargs = warning: Unable to access address 0x482822cf from core (invalid char ptr (0x482822cf))), line 58 in "abstract.h" _PyObject_CallMethodIdObjArgs(obj = (nil), name = 0x20026138, ... = 0x3008d4f8, 0x3003c5c8, 0x0, 0x3003ade8, 0x3003ad28, 0x3003ad48), line 901 in "call.c" import_find_and_load(tstate = 0x2003e4d0, abs_name = (nil)), line 1765 in "import.c" unnamed block in PyImport_ImportModuleLevelObject(name = 0x30085de8, globals = (nil), locals = 0x103a18e0, fromlist = 0x200377b0, level = 804397472), line 1885 in "import.c" PyImport_ImportModuleLevelObject(name = 0x30085de8, globals = (nil), locals = 0x103a18e0, fromlist = 0x200377b0, level = 804397472), line 1885 in "import.c" builtin___import__(self = 0x100bead4, args = 0x00000010, kwds = 0x2ff22210), line 280 in "bltinmodule.c" cfunction_call(func = 0x20060a78, args = 0x3003c528, kwargs = (nil)), line 537 in "methodobject.c" _PyObject_MakeTpCall(tstate = (nil), callable = 0x2ff2234c, args = 0x2ff222f0, nargs = 673718991, keywords = 0x100bc874), line 197 in "call.c" _PyObject_CallFunctionVa(tstate = 0xeda68055, callable = (nil), format = warning: Unable to access address 0xdeadbeef from core (invalid char ptr (0xdeadbeef)), va = (nil), is_size_t = 0), line 65592 in "abstract.h" PyObject_CallFunction(callable = 0x3003c5c8, format = "OOOOi", ... = 0x3008d4f8, 0x30085e38, 0x30085e38, 0x3006af68, 0x0, 0x0), line 583 in "call.c" PyImport_Import(module_name = 0x2ff22530), line 2086 in "import.c" PyImport_ImportModule(name = "\200A"), line 1482 in "import.c" PyImport_ImportModuleNoBlock(name = "`"), line 1500 in "import.c" _PyCodecRegistry_Init(), line 1547 in "codecs.c" _PyCodec_Forget(encoding = warning: Unable to access address 0xeda68055 from core (invalid char ptr (0xeda68055))), line 128 in "codecs.c" init_stdio_encoding(tstate = 0x2ff22604), line 15996 in "unicodeobject.c" init_fs_encoding(tstate = 0x20008168), line 16110 in "unicodeobject.c" _PyUnicode_InitEncodings(tstate = 0x20001110), line 16126 in "unicodeobject.c" init_interp_main(tstate = 0x00000001), line 1016 in "pylifecycle.c" pyinit_main(tstate = 0x20001110), line 1107 in "pylifecycle.c" Py_InitializeFromConfig(config = (nil)), line 1151 in "pylifecycle.c" pymain_init(args = 0xf066a338), line 66 in "main.c" pymain_main(args = 0x00000001), line 694 in "main.c" Py_BytesMain(argc = -559038737, argv = 0xdeadbeef), line 727 in "main.c" python.main(argc = 0, argv = (nil)), line 15 in "python.c" (dbx) On 07/07/2020 12:45, Pablo Galindo Salgado wrote: > Pablo Galindo Salgado <pablogsal@gmail.com> added the comment: > > Master has to be something else then.... > > ---------- > > _______________________________________ > Python tracker <report@bugs.python.org> > <https://bugs.python.org/issue41215> > _______________________________________ > |
|||
msg373232 - (view) | Author: Pablo Galindo Salgado (pablogsal) * | Date: 2020-07-07 17:07 | |
Yeah, this looks like something else. I am closing this issue then |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:59:33 | admin | set | github: 85387 |
2020-07-07 17:07:00 | pablogsal | set | status: open -> closed resolution: fixed messages: + msg373232 stage: patch review -> resolved |
2020-07-07 12:22:38 | Michael.Felt | set | messages: + msg373223 |
2020-07-07 10:45:45 | pablogsal | set | messages: + msg373217 |
2020-07-07 10:12:15 | Michael.Felt | set | messages: + msg373215 |
2020-07-07 09:12:14 | Michael.Felt | set | messages: + msg373211 |
2020-07-06 23:35:13 | miss-islington | set | messages: + msg373195 |
2020-07-06 22:42:34 | miss-islington | set | pull_requests: + pull_request20512 |
2020-07-06 22:42:30 | lys.nikolaou | set | messages: + msg373191 |
2020-07-06 22:26:27 | lys.nikolaou | set | messages: + msg373188 |
2020-07-06 22:23:13 | lys.nikolaou | set | pull_requests: + pull_request20509 |
2020-07-06 21:48:17 | pablogsal | set | messages: + msg373182 |
2020-07-06 21:38:41 | lys.nikolaou | set | messages: + msg373179 |
2020-07-06 21:34:38 | pablogsal | set | messages: + msg373178 |
2020-07-06 21:04:49 | Michael.Felt | set | messages: + msg373173 |
2020-07-06 19:31:19 | miss-islington | set | messages: + msg373161 |
2020-07-06 19:30:03 | miss-islington | set | nosy:
+ miss-islington messages: + msg373160 |
2020-07-06 18:47:05 | pablogsal | set | pull_requests: + pull_request20502 |
2020-07-06 18:35:31 | pablogsal | set | keywords:
+ patch stage: patch review pull_requests: + pull_request20501 |
2020-07-06 18:35:22 | pablogsal | set | messages: + msg373154 |
2020-07-06 17:16:38 | lys.nikolaou | set | messages: + msg373149 |
2020-07-06 17:13:55 | pablogsal | set | messages: + msg373148 |
2020-07-06 17:10:40 | David.Edelsohn | set | messages: + msg373146 |
2020-07-06 17:03:43 | Michael.Felt | set | messages: + msg373144 |
2020-07-06 16:57:17 | pablogsal | set | messages: + msg373143 |
2020-07-06 16:30:40 | Michael.Felt | set | messages: + msg373137 |
2020-07-06 16:13:30 | David.Edelsohn | set | messages: + msg373136 |
2020-07-06 15:54:23 | Michael.Felt | set | messages: + msg373134 |
2020-07-06 14:35:36 | pablogsal | set | messages: + msg373123 |
2020-07-06 14:30:15 | Michael.Felt | set | messages: + msg373121 |
2020-07-06 12:37:20 | pablogsal | set | messages: + msg373112 |
2020-07-06 12:34:00 | pablogsal | set | messages: - msg373107 |
2020-07-06 12:05:29 | pablogsal | set | messages: + msg373107 |
2020-07-06 11:48:12 | pablogsal | set | messages: + msg373098 |
2020-07-06 11:43:29 | pablogsal | set | messages: + msg373097 |
2020-07-06 10:47:33 | pablogsal | set | messages: + msg373091 |
2020-07-06 10:41:40 | pablogsal | set | messages: + msg373090 |
2020-07-06 06:50:18 | Michael.Felt | set | messages: + msg373070 |
2020-07-05 23:33:55 | Michael.Felt | set | messages: + msg373053 |
2020-07-05 18:34:37 | pablogsal | set | messages: + msg373039 |
2020-07-05 18:27:50 | pablogsal | set | messages: + msg373038 |
2020-07-05 18:25:50 | pablogsal | set | nosy:
+ lys.nikolaou |
2020-07-05 14:42:30 | Michael.Felt | set | messages: + msg373031 |
2020-07-05 13:40:04 | Michael.Felt | set | messages: + msg373030 |
2020-07-05 11:32:57 | skrah | set | nosy:
+ skrah |
2020-07-05 11:31:23 | Michael.Felt | create |