[Bug 283068] misc/lifelines: ASSERT failure in file <pvalalloc.c> at line 182

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 01 Dec 2024 21:28:54 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=283068

            Bug ID: 283068
           Summary: misc/lifelines: ASSERT failure in file <pvalalloc.c>
                    at line 182
           Product: Ports & Packages
           Version: Latest
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: david@catwhisker.org
                CC: matt@gsicomp.on.ca
                CC: matt@gsicomp.on.ca
             Flags: maintainer-feedback?(matt@gsicomp.on.ca)
 Attachment #255568 text/plain
         mime type:

Created attachment 255568
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=255568&action=edit
Lifelines report generation script

I happened to notice this yesterday, running:
FreeBSD 14.2-STABLE #291 stable/14-n269714-57a7f61b13c3: Sat Nov 30 11:41:57
UTC 2024    
root@g1-70.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64
1402500 1402500

with ports as of main-n687770-721f1c601e09

and re-created it today, running:
FreeBSD 14.2-STABLE #292 stable/14-n269813-35d2f335e855: Sun Dec  1 13:30:00
UTC 2024    
root@g1-51.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY amd64
1402501 1402501

with ports as of main-n687834-228c77f4f8f4

The most recent re-creation was after:

cd /usr/ports/misc/lifelines
sudo make clean
sudo make -D -D WITH_DEBUG
[Following was actually in a different xterm]
cd /tmp
mkdir ll
/usr/ports/misc/lifelines/work/stage/usr/local/bin/llines -a -x a-html g

Resulting CrashLog_llines.log reads:

Fatal Error: 2024-12-01-21:03:07Z
    in file <pvalalloc.c> at line 182
    Current database: /home/david/ll/Databases/g

After firing up gdb:
gdb /usr/ports/misc/lifelines/work/stage/usr/local/bin/llines llines.core

I see:
GNU gdb (GDB) 15.1 [GDB v15.1 for FreeBSD]                                     
                                                                               
              │
Copyright (C) 2024 Free Software Foundation, Inc.                              
                                                                               
              │
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>  
                                                                               
              │
This is free software: you are free to change and redistribute it.             
                                                                               
              │
There is NO WARRANTY, to the extent permitted by law.                          
                                                                               
              │
Type "show copying" and "show warranty" for details.                           
                                                                               
              │
This GDB was configured as "x86_64-portbld-freebsd14.2".                       
                                                                               
              │
Type "show configuration" for configuration details.                           
                                                                               
              │
For bug reporting instructions, please see:                                    
                                                                               
              │
<https://www.gnu.org/software/gdb/bugs/>.                                      
                                                                               
              │
Find the GDB manual and other documentation resources online at:               
                                                                               
              │
    <http://www.gnu.org/software/gdb/documentation/>.                          
                                                                               
              │
  │                                                                            
                                                                               
              │
For help, type "help".                                                         
                                                                               
              │
Type "apropos word" to search for commands related to "word"...                
                                                                               
              │
Reading symbols from
/usr/ports/misc/lifelines/work/stage/usr/local/bin/llines...                   
                                                                         │
[New LWP 105845]                                                               
                                                                               
              │
Core was generated by
`/usr/ports/misc/lifelines/work/stage/usr/local/bin/llines -a -x a-html g'.    
                                                                        │
Program terminated with signal SIGABRT, Aborted.                               
                                                                               
              │
Sent by thr_kill() from pid 15354 and user 1001.                               
                                                                               
              │
#0  thr_kill () at thr_kill.S:4                                                
                                                                               
              │
4       RSYSCALL(thr_kill)                                                     
                                                                               
              │
(gdb) bt                                                                       
                                                                               
              │
#0  thr_kill () at thr_kill.S:4                                                
                                                                               
              │
#1  0x00000008251609a4 in __raise (s=s@entry=6) at
/usr/src/lib/libc/gen/raise.c:50                                               
                                           │
#2  0x00000008252149b9 in abort () at /usr/src/lib/libc/stdlib/abort.c:64      
                                                                               
              │
#3  0x00000000002ad45b in ll_optional_abort (msg=0x208afc "ASSERT failure") at
llabort.c:52                                                                   
               │
#4  0x00000000002364e2 in __fatal (file=0x209b71 "pvalalloc.c", line=182,
details=0x0) at error.c:72                                                     
                    │
#5  0x0000000000270805 in free_pvalue_memory (val=0x199872c260e8) at
pvalalloc.c:182                                                                
                         │
#6  0x0000000000272477 in delete_pvalue (val=0x199872c260e8) at pvalue.c:380   
                                                                               
              │
#7  0x00000000002709eb in free_all_pvalues () at pvalalloc.c:270               
                                                                               
              │
#8  0x000000000027088b in pvalues_end () at pvalalloc.c:209                    
                                                                               
              │
#9  0x0000000000263c28 in interp_program_list (proc=0x208225 "main", nargs=0,
args=0x0, lifiles=0x1998720270c0, ofile=0x0, picklist=0) at interp.c:372       
                │
#10 0x000000000026349a in interp_main (lifiles=0x1998720270c0, ofile=0x0,
picklist=0, timing=0) at interp.c:561                                          
                    │
#11 0x000000000023d5e1 in main (argc=5, argv=0x820db9060) at main.c:401        
                                                                               
              │
(gdb) q                                                                        
                                                                               
              │

The alloc.log file is 3.3GB, so attaching it isn't feasible; its head & tail
are:
g1-70(14.2-S)[16] head !$
head alloc.log
0x1998720270c0 A list.c 100     48
0x19987202a0a0 A list.c 255     32
0x19987202a0c0 A stralloc.c     24      24
0x19987203f060 A listener.c     39      16
0x1998720270f0 A list.c 100     48
0x19987202a0e0 A list.c 255     32
0x199872027120 A table.c        143     40
0x19987202a100 A hashtab.c      98      24
0x199872037000 A hashtab.c      101     4096
0x199872027150 A table.c        143     40
g1-70(14.2-S)[17] tail alloc.log
0x199872c02c70 F list.c 163
0x199872c092a0 F list.c 163
0x199872c091e0 F list.c 163
0x199872c02fa0 F list.c 163
0x199872c09000 F list.c 163
0x199872c02e80 F list.c 163
0x199872c02cd0 F list.c 163
0x199872bd9750 F list.c 163
0x199872c020a0 F list.c 163
0x199872c09120 F list.c 163
g1-70(14.2-S)[18]

The error appears to reproducible on demand, so I'm happy to try poking around
with gdb, given clue(s).  The script ("a-html.ll") had run successfully (quite)
some time ago; I admit it had been ... years ... since I used it last.  It's
certainly possible that I had erred.

-- 
You are receiving this mail because:
You are the assignee for the bug.