[go: up one dir, main page]

Menu

#109 Building help fails due to segfault on Fedora (fc33, fc34, x86_64)

closed
nobody
None
2021-06-19
2021-06-13
No

Output from build:

making all in doc/C/help...
make[5]: Entering directory '/home/md/src/cderpm/BUILD/cde-2.3.2/doc/C/help'
LANG=C SGML_SEARCH_PATH=".:.." LD_LIBRARY_PATH=../../../exports/lib:/usr/dt/lib:/usr/lib DTLCXSEARCHPATH=../../../lib/DtHelp /bin/ksh ../../../programs/dtdocbook/doc2sdl/dtdocbook -t
../../../programs/dtdocbook/doc2sdl -H ../../../programs/dthelp/parser/pass2/htag2/dthelp_htag2 -I ../../../programs/dtdocbook/instant/instant -L ../../../programs/dtdocbook/xlate_loc
ale/xlate_locale -S ../../../programs/nsgmls/nsgmls  -o ../help-sdl/Appmanager.sdl Appmanager/book.sgm
dtdocbook fatal error:
    Error processing book.out.sdl by ../../../programs/dthelp/parser/pass2/htag2/dthelp_htag2
make[5]: *** [Makefile:742: ../help-sdl/Appmanager.sdl] Error 1
make[5]: Leaving directory '/home/md/src/cderpm/BUILD/cde-2.3.2/doc/C/help'
making all in doc/C/man...

The culprit is ../../../programs/dtdocbook/instant/instant. When running it in valgrind, the following information is printed:

../../../programs/nsgmls/nsgmls -deglru ../../../programs/dtdocbook/doc2sdl/docbook.sgml Appmanager/book.sgm > book.esis
../../../programs/dtdocbook/instant/instant -o book.out.sdl \\
        -c docbook.cmap \\
        -t docbook.ts \\
        book.esis
==580693== Memcheck, a memory error detector
==580693== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==580693== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info
==580693== Command: ../../../programs/dtdocbook/instant/instant -o book.out.sdl -c docbook.cmap -t docbook.ts book.esis
==580693==
==580693== Invalid read of size 4
==580693==    at 0x51D62D4: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51D6D6F: TclpFree (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51CB914: Tcl_GetObjResult (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x517964F: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5100041: TclNRRunCallbacks (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5105DA6: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065D6: Tcl_EvalEx (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065F9: Tcl_Eval (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x406815: CallInterpreter (translate.c:319)
==580693==    by 0x4070F6: TransElement (translate.c:796)
==580693==    by 0x409B47: ExpandSpecialVar (tranvar.c:445)
==580693==    by 0x406731: ProcesOutputSpec (translate.c:412)
==580693==  Address 0x15211270 is 16 bytes before a block of size 808 alloc'd
==580693==    at 0x484086F: malloc (vg_replace_malloc.c:380)
==580693==    by 0x402FE5: EscapeI18NChars.part.0 (main.c:810)
==580693==    by 0x403B5C: EscapeI18NChars (main.c:805)
==580693==    by 0x403B5C: ReadLocaleStrings (main.c:883)
==580693==    by 0x403B5C: TclReadLocaleStrings.part.0 (main.c:909)
==580693==    by 0x50FEDB4: TclInvokeStringCommand (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5100041: TclNRRunCallbacks (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5105DA6: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065D6: Tcl_EvalEx (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065F9: Tcl_Eval (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x406815: CallInterpreter (translate.c:319)
==580693==    by 0x4070F6: TransElement (translate.c:796)
==580693==    by 0x409B47: ExpandSpecialVar (tranvar.c:445)
==580693==    by 0x406731: ProcesOutputSpec (translate.c:412)
==580693==
==580693== Invalid read of size 1
==580693==    at 0x51D62FE: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51D6D6F: TclpFree (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51CB914: Tcl_GetObjResult (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x517964F: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5100041: TclNRRunCallbacks (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5105DA6: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065D6: Tcl_EvalEx (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065F9: Tcl_Eval (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x406815: CallInterpreter (translate.c:319)
==580693==    by 0x4070F6: TransElement (translate.c:796)
==580693==    by 0x409B47: ExpandSpecialVar (tranvar.c:445)
==580693==    by 0x406731: ProcesOutputSpec (translate.c:412)
==580693==  Address 0x15211273 is 13 bytes before a block of size 808 alloc'd
==580693==    at 0x484086F: malloc (vg_replace_malloc.c:380)
==580693==    by 0x402FE5: EscapeI18NChars.part.0 (main.c:810)
==580693==    by 0x403B5C: EscapeI18NChars (main.c:805)
==580693==    by 0x403B5C: ReadLocaleStrings (main.c:883)
==580693==    by 0x403B5C: TclReadLocaleStrings.part.0 (main.c:909)
==580693==    by 0x50FEDB4: TclInvokeStringCommand (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5100041: TclNRRunCallbacks (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5105DA6: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065D6: Tcl_EvalEx (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065F9: Tcl_Eval (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x406815: CallInterpreter (translate.c:319)
==580693==    by 0x4070F6: TransElement (translate.c:796)
==580693==    by 0x409B47: ExpandSpecialVar (tranvar.c:445)
==580693==    by 0x406731: ProcesOutputSpec (translate.c:412)
==580693==
==580693== Invalid read of size 1
==580693==    at 0x51D6302: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51D6D6F: TclpFree (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51CB914: Tcl_GetObjResult (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x517964F: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5100041: TclNRRunCallbacks (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5105DA6: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065D6: Tcl_EvalEx (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065F9: Tcl_Eval (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x406815: CallInterpreter (translate.c:319)
==580693==    by 0x4070F6: TransElement (translate.c:796)
==580693==    by 0x409B47: ExpandSpecialVar (tranvar.c:445)
==580693==    by 0x406731: ProcesOutputSpec (translate.c:412)
==580693==  Address 0x15211270 is 16 bytes before a block of size 808 alloc'd
==580693==    at 0x484086F: malloc (vg_replace_malloc.c:380)
==580693==    by 0x402FE5: EscapeI18NChars.part.0 (main.c:810)
==580693==    by 0x403B5C: EscapeI18NChars (main.c:805)
==580693==    by 0x403B5C: ReadLocaleStrings (main.c:883)
==580693==    by 0x403B5C: TclReadLocaleStrings.part.0 (main.c:909)
==580693==    by 0x50FEDB4: TclInvokeStringCommand (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5100041: TclNRRunCallbacks (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5105DA6: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065D6: Tcl_EvalEx (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065F9: Tcl_Eval (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x406815: CallInterpreter (translate.c:319)
==580693==    by 0x4070F6: TransElement (translate.c:796)
==580693==    by 0x409B47: ExpandSpecialVar (tranvar.c:445)
==580693==    by 0x406731: ProcesOutputSpec (translate.c:412)
==580693==
alloc: invalid block: 0x15211270: 0 0
==580693==
==580693== Process terminating with default action of signal 6 (SIGABRT): dumping core
==580693==    at 0x53F52A2: raise (in /usr/lib64/libc-2.33.so)
==580693==    by 0x53DE8A3: abort (in /usr/lib64/libc-2.33.so)
==580693==    by 0x51B8AD3: Tcl_PanicVA (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51B8B9E: Tcl_Panic (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51D6316: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51D6D6F: TclpFree (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51CB914: Tcl_GetObjResult (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x517964F: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5100041: TclNRRunCallbacks (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x5105DA6: ??? (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065D6: Tcl_EvalEx (in /usr/lib64/libtcl8.6.so)
==580693==    by 0x51065F9: Tcl_Eval (in /usr/lib64/libtcl8.6.so)
==580693==
==580693== Process terminating with default action of signal 11 (SIGSEGV)
==580693==  General Protection Fault
==580693==    at 0x559EC82: ??? (in /usr/lib64/libpthread-2.33.so)
==580693==    by 0x54E803E: ??? (in /usr/lib64/libc-2.33.so)
==580693==    by 0x552A60C: ??? (in /usr/lib64/libc-2.33.so)
==580693==    by 0x552A261: __libc_freeres (in /usr/lib64/libc-2.33.so)
==580693==    by 0x48371E7: _vgnU_freeres (vg_preloaded.c:74)
==580693==
==580693== HEAP SUMMARY:
==580693==     in use at exit: 1,780,562 bytes in 12,053 blocks
==580693==   total heap usage: 29,557 allocs, 17,504 frees, 107,677,056 bytes allocated
==580693==
==580693== LEAK SUMMARY:
==580693==    definitely lost: 43,222 bytes in 1,741 blocks
==580693==    indirectly lost: 0 bytes in 0 blocks
==580693==      possibly lost: 939,520 bytes in 56 blocks
==580693==    still reachable: 797,820 bytes in 10,256 blocks
==580693==         suppressed: 0 bytes in 0 blocks
==580693== Rerun with --leak-check=full to see details of leaked memory
==580693==
==580693== For lists of detected and suppressed errors, rerun with: -s
==580693== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
../../../programs/dtdocbook/doc2sdl/dtdocbook: line 352: 580693: Memory fault(coredump)

Discussion

  • Roger Brown

    Roger Brown - 2021-06-15

    I have builds working on fedora 34 using 2.3.2b
    https://sourceforge.net/projects/rhubarb-pi/files/fedora/34/

     
    • Herbert Martin Dietze

      Same here: https://github.com/mbert/cderpm/releases/tag/tags/2.3.2

      But at least my builds do not contain the online help because generating it fails (see above).
      Please be aware that build errors are ignored by the make build. Even if some tools could not be built you may still be able to generate an rpm file. This can by itself be considered a bug, but it's not what we're talking about here.

      When working on my changes to the cderpm code on github I redirected both stdout and stderr to a log file which I inspected afterwards. Initially there were a lot of build errors which I could all resolve, only this one (the segfault when generating the online help) remained.

       

      Last edit: Herbert Martin Dietze 2021-06-16
  • Roger Brown

    Roger Brown - 2021-06-16

    The commit f294ef4a5ce9775f3825f32bbab169ba04bfe7ee should work on x86_64 on Fedora 33 and 34, that is the baseline I use after the main tag 2.3.2, else try the current master

     
  • Herbert Martin Dietze

    Thank you. It looks like the sgefault was fixed in 12f2fb1f106eb6980c20e785947ce5619884118d

    Still the help generation step fails. Need to investigate later.

     

    Last edit: Herbert Martin Dietze 2021-06-16
  • Roger Brown

    Roger Brown - 2021-06-17

    Hi Martin, I see you contributing to the github cderpm project. I have my own project focussed on Raspberry Pi, but as a side effect it does CDE packages for many platforms. The page pkg-cdesktopenv has a table listing all the packages I have succesfully built and uploaded, I have had success with both fedora/33 and fedora/34 with complete builds along with centos, opensuse-leap and many others. The patches directory contains the set I have found I have needed relative to git commit, OS and CPU.
    There is also the companion dtlogin-service, which is used to separate issues from binaries with platform dependencies and services. For example the trick to still using TERM=dtterm is to have the correct termcaps installed.
    Regards, Roger

     
  • Herbert Martin Dietze

    Yes, I've taken a brief look at your code yesterday, but I haven't yet got round to fully analysing it.
    My contribution to the cderpm project was mostly the result of my own need.

     
  • Herbert Martin Dietze

    I can now confirm that the problem reported here no longer occurs when building from the current master branch. Hence this bug can be closed.

     
  • Jon Trulson

    Jon Trulson - 2021-06-19
    • status: open --> closed
     

Log in to post a comment.