Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vm parser complains about alignment #276

Open
Consolatis opened this issue Dec 10, 2024 · 12 comments
Open

vm parser complains about alignment #276

Consolatis opened this issue Dec 10, 2024 · 12 comments

Comments

@Consolatis
Copy link
Contributor

I am getting a lot of alignment errors when starting sfwbar (compiled with -Db_sanitize=address,undefined but not sure if related):

test@odroidc4:/home/user/dev/sfwbar$ build/sfwbar
../src/vm/parser.c:157:34: runtime error: store to misaligned address 0xffffe96239a1 for type 'const void *', which requires 8 byte alignment
0xffffe96239a1: note: pointer points here
 ff 00 00  c0 39 62 e9 ff ff 00 00  08 13 77 9d ff ff 00 00  10 3a 62 e9 ff ff 00 00  00 00 00 00 00
              ^ 
../src/vm/parser.c:32:10: runtime error: member access within misaligned address 0xffffe9623981 for type 'struct value_t', which requires 8 byte alignment
0xffffe9623981: note: pointer points here
 00 00 00  00 49 62 e9 ff ff 00 00  00 00 00 00 00 00 00 00  20 00 00 00 00 00 00 00  20 11 81 8d ff
              ^ 
../src/vm/parser.c:32:10: runtime error: member access within misaligned address 0xffffe9623981 for type 'struct value_t', which requires 8 byte alignment
0xffffe9623981: note: pointer points here
 00 00 00  00 00 62 e9 ff ff 00 00  00 00 00 00 00 00 00 00  20 00 00 00 00 00 00 00  20 11 81 8d ff
              ^ 
../src/vm/parser.c:38:34: runtime error: store to misaligned address 0xffff8a843572 for type 'gint', which requires 4 byte alignment
0xffff8a843572: note: pointer points here
 00 28  40 02 3e 62 e9 ff 04 3a  7f a6 8f ff ff 00 00 00  00 62 e9 ff ff 00 00 00  00 00 00 00 00 00
              ^ 
../src/vm/parser.c:131:34: runtime error: store to misaligned address 0xffffe9623e42 for type 'const void *', which requires 8 byte alignment
0xffffe9623e42: note: pointer points here
 00 00  60 3e 62 e9 ff ff 00 00  08 13 77 9d ff ff 00 00  b0 3e 62 e9 ff ff 00 00  80 59 22 96 ff ff
              ^ 
../src/vm/vm.c:149:10: runtime error: load of misaligned address 0xffff8aa8188b for type 'gchar *', which requires 8 byte alignment
0xffff8aa8188b: note: pointer points here
 3a  25 53 00 05 01 92 7f a6  8f ff ff 00 00 be be be  be be be be be be be be  03 00 00 00 00 00 00
              ^ 
05:38:04.69 gtk-layer-shell v0.7.0 may not work on GTK v3.24.38. If you experience crashes, check https://github.com/wmww/gtk-layer-shell/blob/master/compatibility.md
../src/vm/vm.c:201:10: runtime error: load of misaligned address 0xffff8b29ed4b for type 'gchar *', which requires 8 byte alignment
0xffff8b29ed4b: note: pointer points here
 09  00 00 00 04 f2 80 a6 8f  ff ff 00 00 be be be be  be be be be be be be be  b9 96 6e cc 00 00 00
              ^ 
../src/vm/vm.c:214:6: runtime error: load of misaligned address 0xffff8b2a094e for type 'struct value_t', which requires 8 byte alignment
0xffff8b2a094e: note: pointer points here
 11 00 00 00 00 01  63 70 75 5f 63 68 61 72  74 00 02 09 00 00 00 00  01 68 69 64 64 65 6e 00  be be
             ^ 
../src/vm/vm.c:248:15: runtime error: load of misaligned address 0xffff8b2a095b for type 'guint', which requires 4 byte alignment
0xffff8b2a095b: note: pointer points here
 72  74 00 02 09 00 00 00 00  01 68 69 64 64 65 6e 00  be be be be be be be be  be be be be be be be
              ^ 
../src/vm/vm.c:253:17: runtime error: load of misaligned address 0xffff94e73b83 for type 'gint', which requires 4 byte alignment
0xffff94e73b83: note: pointer points here
 00  00 3c 01 16 00 00 00 00  00 62 e9 ff ff 00 00 00  00 00 00 00 00 00 00 00  02 1b 00 00 00 00 00
              ^ 

There are also a lot of these ones (25 to be precise) but I don't know if they are related either:

(sfwbar:4078811): GLib-CRITICAL **: 05:38:04.869: g_hash_table_lookup: assertion 'hash_table != NULL' failed
@LBCrion
Copy link
Owner

LBCrion commented Dec 10, 2024 via email

@Consolatis
Copy link
Contributor Author

Does this cause any issues with the executable?

None that I recognized so far. I just wondered about the runtime errors on startup.

@LBCrion
Copy link
Owner

LBCrion commented Dec 10, 2024 via email

@Consolatis
Copy link
Contributor Author

Consolatis commented Dec 10, 2024

I am getting a alsa compile error:

alsa error
ninja: Entering directory `/home/user/dev/sfwbar/build'
[53/70] Compiling C object alsactl.so.p/modules_alsactl.c.o
FAILED: alsactl.so.p/modules_alsactl.c.o
cc -Ialsactl.so.p -I. -I.. -I../src -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/uuid -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib/aarch64-linux-gnu/dbus-1.0/include -I/usr/include/at-spi-2.0 -I/usr/include/gtk-layer-shell -I/usr/include/json-c -fdiagnostics-color=always -fsanitize=address,undefined -fno-omit-frame-pointer -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -O0 -g -fPIC -pthread -MD -MQ alsactl.so.p/modules_alsactl.c.o -MF alsactl.so.p/modules_alsactl.c.o.d -o alsactl.so.p/modules_alsactl.c.o -c ../modules/alsactl.c
../modules/alsactl.c:666:4: error: ‘ModuleInterfaceV1’ has no member named ‘finalize’
  666 |   .finalize = alsa_finalize
      |    ^~~~~~~~
../modules/alsactl.c:666:15: error: excess elements in struct initializer [-Werror]
  666 |   .finalize = alsa_finalize
      |               ^~~~~~~~~~~~~
../modules/alsactl.c:666:15: note: (near initialization for ‘sfwbar_interface’)

With 5212446 reverted I can compile but get a unknown-crash by ASAN when starting:

vm/vm.c
test@odroidc4:/home/user/dev/sfwbar$ build/sfwbar
../src/vm/parser.c:32:10: runtime error: member access within misaligned address 0xffffc76f1a91 for type 'struct value_t', which requires 8 byte alignment
0xffffc76f1a91: note: pointer points here
 00 00 00  00 2a 6f c7 ff ff 00 00  00 00 00 00 00 00 00 00  20 00 00 00 00 00 00 00  c0 10 41 a0 ff
              ^ 
../src/vm/parser.c:32:10: runtime error: member access within misaligned address 0xffffc76f1a91 for type 'struct value_t', which requires 8 byte alignment
0xffffc76f1a91: note: pointer points here
 00 00 00  00 00 6f c7 ff ff 00 00  00 00 00 00 00 00 00 00  20 00 00 00 00 00 00 00  c0 10 41 a0 ff
              ^ 
=================================================================
==4116953==ERROR: AddressSanitizer: unknown-crash on address 0xffff9d879791 at pc 0xffffb038c800 bp 0xffffc76f2040 sp 0xffffc76f2058
READ of size 16 at 0xffff9d879791 thread T0
    #0 0xffffb038c7fc in vm_immediate ../src/vm/vm.c:215
    #1 0xffffb038d724 in vm_run ../src/vm/vm.c:245
    #2 0xffffb038f404 in vm_expr_eval ../src/vm/vm.c:327
    #3 0xffffb0383d14 in expr_cache_eval ../src/vm/expr.c:796
    #4 0xffffb03a225c in base_widget_set_style ../src/gui/basewidget.c:524
    #5 0xffffb03f48ac in config_widget_property ../src/config/layout.c:190
    #6 0xffffb03f5db0 in config_widget ../src/config/layout.c:430
    #7 0xffffb03f5d2c in config_widget_child ../src/config/layout.c:409
    #8 0xffffb03f5dc8 in config_widget ../src/config/layout.c:432
    #9 0xffffb03f6298 in config_popup ../src/config/layout.c:469
    #10 0xffffb03fba04 in config_parse_toplevel ../src/config/toplevel.c:343
    #11 0xffffb03f29f8 in config_parse_data ../src/config/init.c:284
    #12 0xffffb03f2e70 in config_parse ../src/config/init.c:340
    #13 0xffffb03f41c4 in config_include ../src/config/layout.c:116
    #14 0xffffb03f5ae0 in config_widget_child ../src/config/layout.c:387
    #15 0xffffb03fb960 in config_parse_toplevel ../src/config/toplevel.c:330
    #16 0xffffb03f29f8 in config_parse_data ../src/config/init.c:284
    #17 0xffffb03f2e70 in config_parse ../src/config/init.c:340
    #18 0xaaaac46f400c in activate ../src/sfwbar.c:113
    #19 0xffffb1107b80 in g_closure_invoke (/lib/aarch64-linux-gnu/libgobject-2.0.so.0+0x17b80)
    #20 0xffffb111d3dc  (/lib/aarch64-linux-gnu/libgobject-2.0.so.0+0x2d3dc)
    #21 0xffffb111e6f4  (/lib/aarch64-linux-gnu/libgobject-2.0.so.0+0x2e6f4)
    #22 0xffffb11240b0 in g_signal_emit_valist (/lib/aarch64-linux-gnu/libgobject-2.0.so.0+0x340b0)
    #23 0xffffb1124170 in g_signal_emit (/lib/aarch64-linux-gnu/libgobject-2.0.so.0+0x34170)
    #24 0xffffaf4fbedc  (/lib/aarch64-linux-gnu/libgio-2.0.so.0+0xfbedc)
    #25 0xffffaf4fc020 in g_application_run (/lib/aarch64-linux-gnu/libgio-2.0.so.0+0xfc020)
    #26 0xaaaac46f46b0 in main ../src/sfwbar.c:154
    #27 0xffffaf662148 in __libc_start_call_main ../sysdeps/aarch64/libc-start.c:58
    #28 0xffffaf66221c in __libc_start_main_impl ../sysdeps/nptl/libc_start_call_main.h:360
    #29 0xaaaac46f39ac in _start (/home/user/dev/sfwbar/build/sfwbar+0x39ac)

0xffff9d8797a0 is located 0 bytes to the right of 16-byte region [0xffff9d879790,0xffff9d8797a0)
allocated by thread T0 here:
    #0 0xffffb069f1c4 in __interceptor_realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:164
    #1 0xffffb00e5868 in g_realloc (/lib/aarch64-linux-gnu/libglib-2.0.so.0+0x65868)
    #2 0xffffb00a1bfc  (/lib/aarch64-linux-gnu/libglib-2.0.so.0+0x21bfc)
    #3 0xffffb00a2610 in g_array_append_vals (/lib/aarch64-linux-gnu/libglib-2.0.so.0+0x22610)
    #4 0xffffb00a45e4 in g_byte_array_append (/lib/aarch64-linux-gnu/libglib-2.0.so.0+0x245e4)
    #5 0xffffb0385374 in parser_emit_string ../src/vm/parser.c:22
    #6 0xffffb03870cc in parser_value ../src/vm/parser.c:191
    #7 0xffffb03874b8 in parser_ops ../src/vm/parser.c:229
    #8 0xffffb03874f4 in parser_ops ../src/vm/parser.c:231
    #9 0xffffb03874f4 in parser_ops ../src/vm/parser.c:231
    #10 0xffffb03874f4 in parser_ops ../src/vm/parser.c:231
    #11 0xffffb03874f4 in parser_ops ../src/vm/parser.c:231
    #12 0xffffb0387900 in parser_expr_parse ../src/vm/parser.c:258
    #13 0xffffb0388518 in parser_expr_compile ../src/vm/parser.c:301
    #14 0xffffb0384274 in expr_cache_set ../src/vm/expr.c:837
    #15 0xffffb03a2110 in base_widget_set_style ../src/gui/basewidget.c:521
    #16 0xffffb03f48ac in config_widget_property ../src/config/layout.c:190
    #17 0xffffb03f5db0 in config_widget ../src/config/layout.c:430
    #18 0xffffb03f5d2c in config_widget_child ../src/config/layout.c:409
    #19 0xffffb03f5dc8 in config_widget ../src/config/layout.c:432
    #20 0xffffb03f6298 in config_popup ../src/config/layout.c:469
    #21 0xffffb03fba04 in config_parse_toplevel ../src/config/toplevel.c:343
    #22 0xffffb03f29f8 in config_parse_data ../src/config/init.c:284
    #23 0xffffb03f2e70 in config_parse ../src/config/init.c:340
    #24 0xffffb03f41c4 in config_include ../src/config/layout.c:116
    #25 0xffffb03f5ae0 in config_widget_child ../src/config/layout.c:387
    #26 0xffffb03fb960 in config_parse_toplevel ../src/config/toplevel.c:330
    #27 0xffffb03f29f8 in config_parse_data ../src/config/init.c:284
    #28 0xffffb03f2e70 in config_parse ../src/config/init.c:340
    #29 0xaaaac46f400c in activate ../src/sfwbar.c:113

SUMMARY: AddressSanitizer: unknown-crash ../src/vm/vm.c:215 in vm_immediate
Shadow bytes around the buggy address:
  0x200ff3b0f2a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200ff3b0f2b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200ff3b0f2c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200ff3b0f2d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200ff3b0f2e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa 00 00
=>0x200ff3b0f2f0: fa fa[00]00 fa fa fd fd fa fa 00 04 fa fa fd fd
  0x200ff3b0f300: fa fa fd fa fa fa fd fd fa fa fd fd fa fa fd fd
  0x200ff3b0f310: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
  0x200ff3b0f320: fa fa 00 00 fa fa fd fd fa fa fa fa fa fa fa fa
  0x200ff3b0f330: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x200ff3b0f340: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==4116953==ABORTING

@LBCrion
Copy link
Owner

LBCrion commented Dec 10, 2024 via email

@LBCrion
Copy link
Owner

LBCrion commented Dec 10, 2024 via email

@Consolatis
Copy link
Contributor Author

Yep, alsa issue is fixed. Still getting the same ASAN "unknown-crash" in src/vm/vm.c:215 as before though. Same for the two misaligned runtime errors in src/vm/parser.c:32.

@Consolatis
Copy link
Contributor Author

Without ASAN I am getting a double free in src/vm/vm.c:88 instead.

@LBCrion
Copy link
Owner

LBCrion commented Dec 10, 2024 via email

@Consolatis
Copy link
Contributor Author

The unknown crash with ASAN is gone and sfwbar starts up.

last align runtime error with ASAN
../src/vm/vm.c:202:10: runtime error: load of misaligned address 0xffff990a138b for type 'gchar *', which requires 8 byte alignment
0xffff990a138b: note: pointer points here
 09  00 00 00 04 2a 6c 86 9d  ff ff 00 00 be be be be  be be be be be be be be  b9 96 6e cc 00 00 00
              ^ 

(sfwbar:4131057): GLib-CRITICAL **: 00:07:36.849: g_hash_table_lookup: assertion 'hash_table != NULL' failed

Without ASAN I still get a double free (which is weird, no clue why I don't get the same with ASAN)

bt full for double free without ASAN
(sfwbar:4130446): GLib-CRITICAL **: 00:03:27.440: g_hash_table_lookup: assertion 'hash_table != NULL' failed
free(): double free detected in tcache 2

Thread 1 "sfwbar" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=281474841522208, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at ./nptl/pthread_kill.c:44
44	./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0  __pthread_kill_implementation (threadid=281474841522208, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at ./nptl/pthread_kill.c:44
#1  0x0000fffff70c1bb8 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x0000fffff70764d0 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x0000fffff7061a08 in __GI_abort () at ./stdlib/abort.c:79
#4  0x0000fffff70b4ec8 in __libc_message_impl (fmt=fmt@entry=0xfffff71a01c0 "%s\n") at ../sysdeps/posix/libc_fatal.c:132
#5  0x0000fffff70cc74c in malloc_printerr (str=str@entry=0xfffff719b688 "free(): double free detected in tcache 2")
    at ./malloc/malloc.c:5772
#6  0x0000fffff70cebd8 in _int_free (av=0xfffff71f0a50 <main_arena>, p=p@entry=0xaaaaaadaecc0, have_lock=have_lock@entry=0)
    at ./malloc/malloc.c:4541
#7  0x0000fffff70d1594 in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3398
#8  0x0000fffff7f5e614 in vm_op_binary (vm=0xaaaaaadad3e0) at ../src/vm/vm.c:88
#9  0x0000fffff7f5f03c in vm_run (vm=0xaaaaaadad3e0) at ../src/vm/vm.c:283
#10 0x0000fffff7f5f228 in vm_expr_eval (expr=0xaaaaaadadcb0) at ../src/vm/vm.c:330
#11 0x0000fffff7f5cb94 in expr_cache_eval (expr=0xaaaaaadadcb0) at ../src/vm/expr.c:796
#12 0x0000fffff7f64778 in base_widget_set_value (self=0xaaaaaadadbe0, value=0xaaaaaadaecb0 "\"<b>\"+$MpdTitle+\"</b>\"")
    at ../src/gui/basewidget.c:504
#13 0x0000fffff7f804d8 in config_widget_property (scanner=0xaaaaaad8bbd0, widget=0xaaaaaadadbe0) at ../src/config/layout.c:221
#14 0x0000fffff7f81044 in config_widget (scanner=0xaaaaaad8bbd0, widget=0xaaaaaadadbe0) at ../src/config/layout.c:430
#15 0x0000fffff7f80fc0 in config_widget_child (scanner=0xaaaaaad8bbd0, container=0xaaaaaadabfc0) at ../src/config/layout.c:409
#16 0x0000fffff7f8105c in config_widget (scanner=0xaaaaaad8bbd0, widget=0xaaaaaadabfc0) at ../src/config/layout.c:432
#17 0x0000fffff7f811f0 in config_popup (scanner=0xaaaaaad8bbd0) at ../src/config/layout.c:469
#18 0x0000fffff7f82bc8 in config_parse_toplevel (scanner=0xaaaaaad8bbd0, container=0xaaaaaac75680)
    at ../src/config/toplevel.c:343
#19 0x0000fffff7f7e620 in config_parse_data
    (fname=0xaaaaaad78780 "/home/test/.config/sfwbar/mpd-intmod.widget", data=0xaaaaaad79b60 "include(\"mpd.source\")\n\nPopUp \"XMpdWindow\" {\n  autoclose = false\n  trigger = \"mpd\"\n  style = If($MpdState=\"\",\"hidden\",\"XMpdPopup\")\n  css = \"* { -GtkWidget-direction: bottom; }\"\n  label {\n    value = \"<"..., container=0xaaaaaac75680) at ../src/config/init.c:284
#20 0x0000fffff7f7e830 in config_parse (file=0xaaaaaad8be60 "mpd-intmod.widget", container=0xaaaaaac75680)
    at ../src/config/init.c:340
#21 0x0000fffff7f7fe40 in config_include (scanner=0xaaaaaab85540, container=0xaaaaaac75680) at ../src/config/layout.c:116
#22 0x0000fffff7f80ea8 in config_widget_child (scanner=0xaaaaaab85540, container=0xaaaaaac75680) at ../src/config/layout.c:387
#23 0x0000fffff7f8105c in config_widget (scanner=0xaaaaaab85540, widget=0xaaaaaac75680) at ../src/config/layout.c:432
#24 0x0000fffff7f8112c in config_layout (scanner=0xaaaaaab85540, container=0x0) at ../src/config/layout.c:455
#25 0x0000fffff7f82bbc in config_parse_toplevel (scanner=0xaaaaaab85540, container=0x0) at ../src/config/toplevel.c:340
--Type <RET> for more, q to quit, c to continue without paging--c
#26 0x0000fffff7f7e620 in config_parse_data (fname=0xaaaaaac6a9a0 "/home/test/.config/sfwbar/sfwbar.config", data=0xaaaaaad5cbf0 "# Override gtk theme\n# theme = \"Adwaita-dark\"\n# Override gtk icon theme\n# IconTheme = \"Adwaita\"\n\n# Display minimized windows on taskbars across all outputs\n# DisownMinimized = true\n\n# Select terminal "..., container=0x0) at ../src/config/init.c:284
#27 0x0000fffff7f7e830 in config_parse (file=0xaaaaaaaa2800 "sfwbar.config", container=0x0) at ../src/config/init.c:340
#28 0x0000aaaaaaaa2320 in activate (app=0xaaaaaac12e80, data=0x0) at ../src/sfwbar.c:113
#29 0x0000fffff7ea7b84 in g_closure_invoke () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#30 0x0000fffff7ebd3e0 in  () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#31 0x0000fffff7ebe6f8 in  () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#32 0x0000fffff7ec40b4 in g_signal_emit_valist () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#33 0x0000fffff7ec4174 in g_signal_emit () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#34 0x0000fffff72fbee0 in  () at /lib/aarch64-linux-gnu/libgio-2.0.so.0
#35 0x0000fffff72fc024 in g_application_run () at /lib/aarch64-linux-gnu/libgio-2.0.so.0
#36 0x0000aaaaaaaa25fc in main (argc=1, argv=0xfffffffff9d8) at ../src/sfwbar.c:154
(gdb) bt full
#0  __pthread_kill_implementation (threadid=281474841522208, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at ./nptl/pthread_kill.c:44
        tid = 4130446
        ret = 0
        pd = 0xfffff7f13020
        old_mask = {__val = {18446744069414584328}}
        ret = <optimized out>
#1  0x0000fffff70c1bb8 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x0000fffff70764d0 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x0000fffff7061a08 in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1
        act = 
          {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {281474976705248, 1, 18446743528248704984, 32, 187649984438412, 0, 0, 187649987630144, 187649987630144, 281474830854020, 0, 281474976705248, 281474976705248, 281474976705200, 18446743528248704984, 281474976707352}}, sa_flags = -5408, sa_restorer = 0xffffffffeae0}
#4  0x0000fffff70b4ec8 in __libc_message_impl (fmt=fmt@entry=0xfffff71a01c0 "%s\n") at ../sysdeps/posix/libc_fatal.c:132
        ap = {__stack = 0xffffffffea80, __gr_top = 0xffffffffea80, __vr_top = 0xffffffffea40, __gr_offs = -48, __vr_offs = 0}
        fd = 2
        iov = 
            {{iov_base = 0xfffff719b688, iov_len = 40}, {iov_base = 0xfffff71a01c2, iov_len = 1}, {iov_base = 0xfffff71f6000 <__pthread_keys+14912>, iov_len = 187649987632096}, {iov_base = 0xfffff7eaa0c0 <g_cclosure_marshal_VOID__VOID>, iov_len = 281474976705056}, {iov_base = 0xfffff70d1890 <__GI___libc_realloc+288>, iov_len = 187649987636096}, {iov_base = 0x20, iov_len = 281474827771904}, {iov_base = 0x30, iov_len = 187649987636080}}
        iovcnt = <optimized out>
        total = <optimized out>
        cp = <optimized out>
#5  0x0000fffff70cc74c in malloc_printerr (str=str@entry=0xfffff719b688 "free(): double free detected in tcache 2")
    at ./malloc/malloc.c:5772
#6  0x0000fffff70cebd8 in _int_free (av=0xfffff71f0a50 <main_arena>, p=p@entry=0xaaaaaadaecc0, have_lock=have_lock@entry=0)
    at ./malloc/malloc.c:4541
        tmp = <optimized out>
        cnt = <optimized out>
        e = 0xaaaaaadaecd0
        tc_idx = 0
--Type <RET> for more, q to quit, c to continue without paging--c
        size = 32
        fb = <optimized out>
#7  0x0000fffff70d1594 in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3398
        ar_ptr = <optimized out>
        p = 0xaaaaaadaecc0
#8  0x0000fffff7f5e614 in vm_op_binary (vm=0xaaaaaadad3e0) at ../src/vm/vm.c:88
        v1 = {type = 1 '\001', value = {boolean = -1428493104, numeric = 9.2711412333695705e-310, string = 0xaaaaaadaecd0 "\256\255\252\252\n"}}
        v2 = {type = 1 '\001', value = {boolean = -1428493104, numeric = 9.2711412333695705e-310, string = 0xaaaaaadaecd0 "\256\255\252\252\n"}}
        result = {type = 1 '\001', value = {boolean = -1428493440, numeric = 9.2711412333529699e-310, string = 0xaaaaaadaeb80 "<b><b>"}}
        op = 43 '+'
#9  0x0000fffff7f5f03c in vm_run (vm=0xaaaaaadad3e0) at ../src/vm/vm.c:283
        v1 = {type = 0 '\000', value = {boolean = -5168, numeric = 1.3906711615414676e-309, string = 0xffffffffebd0 ""}}
        jmp = 65535
#10 0x0000fffff7f5f228 in vm_expr_eval (expr=0xaaaaaadadcb0) at ../src/vm/vm.c:330
        vm = 0xaaaaaadad3e0
#11 0x0000fffff7f5cb94 in expr_cache_eval (expr=0xaaaaaadadcb0) at ../src/vm/expr.c:796
        v1 = {type = 176 '\260', value = {boolean = -1428497232, numeric = 9.2711412331656202e-310, string = 0xaaaaaadadcb0 "\260\354ڪ\252\252"}}
        eval = 0xaaaaaadad7b0 "\260\363ڪ\252\252"
#12 0x0000fffff7f64778 in base_widget_set_value (self=0xaaaaaadadbe0, value=0xaaaaaadaecb0 "\"<b>\"+$MpdTitle+\"</b>\"") at ../src/gui/basewidget.c:504
        priv = 0xaaaaaadad9f0
        __func__ = "base_widget_set_value"
#13 0x0000fffff7f804d8 in config_widget_property (scanner=0xaaaaaad8bbd0, widget=0xaaaaaadadbe0) at ../src/config/layout.c:221
        win = 0x0
        trigger = 0xfffff7f7cc44 <config_is_section_end+48> "\037"
        key = 358
#14 0x0000fffff7f81044 in config_widget (scanner=0xaaaaaad8bbd0, widget=0xaaaaaadadbe0) at ../src/config/layout.c:430
#15 0x0000fffff7f80fc0 in config_widget_child (scanner=0xaaaaaad8bbd0, container=0xaaaaaadabfc0) at ../src/config/layout.c:409
        widget = 0xaaaaaadadbe0
        type_get = 0xfffff7f6cff8 <label_get_type>
#16 0x0000fffff7f8105c in config_widget (scanner=0xaaaaaad8bbd0, widget=0xaaaaaadabfc0) at ../src/config/layout.c:432
#17 0x0000fffff7f811f0 in config_popup (scanner=0xaaaaaad8bbd0) at ../src/config/layout.c:469
        id = 0xaaaaaada92f0 "XMpdWindow"
#18 0x0000fffff7f82bc8 in config_parse_toplevel (scanner=0xaaaaaad8bbd0, container=0xaaaaaac75680) at ../src/config/toplevel.c:343
#19 0x0000fffff7f7e620 in config_parse_data (fname=0xaaaaaad78780 "/home/test/.config/sfwbar/mpd-intmod.widget", data=0xaaaaaad79b60 "include(\"mpd.source\")\n\nPopUp \"XMpdWindow\" {\n  autoclose = false\n  trigger = \"mpd\"\n  style = If($MpdState=\"\",\"hidden\",\"XMpdPopup\")\n  css = \"* { -GtkWidget-direction: bottom; }\"\n  label {\n    value = \"<"..., container=0xaaaaaac75680) at ../src/config/init.c:284
        scanner = 0xaaaaaad8bbd0
        w = 0xfffffffff318
        css = 0xaaaaaad8bcb0
        tmp = 0xaaaaaac98770 "\250\307j"
#20 0x0000fffff7f7e830 in config_parse (file=0xaaaaaad8be60 "mpd-intmod.widget", container=0xaaaaaac75680) at ../src/config/init.c:340
        w = 0x0
        fname = 0xaaaaaad78780 "/home/test/.config/sfwbar/mpd-intmod.widget"
        dir = 0xfffff7f90ba8 "Missing '(' after include"
        base = 0x0
        cssfile = 0x28 <error: Cannot access memory at address 0x28>
        csspath = 0x2 <error: Cannot access memory at address 0x2>
        tmp = 0x0
        conf = 0xaaaaaad79b60 "include(\"mpd.source\")\n\nPopUp \"XMpdWindow\" {\n  autoclose = false\n  trigger = \"mpd\"\n  style = If($MpdState=\"\",\"hidden\",\"XMpdPopup\")\n  css = \"* { -GtkWidget-direction: bottom; }\"\n  label {\n    value = \"<"...
#21 0x0000fffff7f7fe40 in config_include (scanner=0xaaaaaab85540, container=0xaaaaaac75680) at ../src/config/layout.c:116
        widget = Python Exception <class 'ValueError'> Variable 'static_fundamental_type_nodes' not found.: 

        fname = 0xaaaaaad8be60 "mpd-intmod.widget"
#22 0x0000fffff7f80ea8 in config_widget_child (scanner=0xaaaaaab85540, container=0xaaaaaac75680) at ../src/config/layout.c:387
        widget = 0x100000001
        type_get = 0xaaaaaac75680
#23 0x0000fffff7f8105c in config_widget (scanner=0xaaaaaab85540, widget=0xaaaaaac75680) at ../src/config/layout.c:432
#24 0x0000fffff7f8112c in config_layout (scanner=0xaaaaaab85540, container=0x0) at ../src/config/layout.c:455
        layout = 0xaaaaaac75680
#25 0x0000fffff7f82bbc in config_parse_toplevel (scanner=0xaaaaaab85540, container=0x0) at ../src/config/toplevel.c:340
#26 0x0000fffff7f7e620 in config_parse_data (fname=0xaaaaaac6a9a0 "/home/test/.config/sfwbar/sfwbar.config", data=0xaaaaaad5cbf0 "# Override gtk theme\n# theme = \"Adwaita-dark\"\n# Override gtk icon theme\n# IconTheme = \"Adwaita\"\n\n# Display minimized windows on taskbars across all outputs\n# DisownMinimized = true\n\n# Select terminal "..., container=0x0) at ../src/config/init.c:284
        scanner = 0xaaaaaab85540
        w = 0x80e2b7d020b0d082
        css = 0xaaaaaaca8780
        tmp = 0xaaaaaac73ca0 "\003dl"
#27 0x0000fffff7f7e830 in config_parse (file=0xaaaaaaaa2800 "sfwbar.config", container=0x0) at ../src/config/init.c:340
        w = 0x0
        fname = 0xaaaaaac6a9a0 "/home/test/.config/sfwbar/sfwbar.config"
        dir = 0xd0bdd0b4d094d199 <error: Cannot access memory at address 0xd0bdd0b4d094d199>
        base = 0x80e2b7d020b0d082 <error: Cannot access memory at address 0x80e2b7d020b0d082>
        cssfile = 0x8fd1bdd0b2d096d1 <error: Cannot access memory at address 0x8fd1bdd0b2d096d1>
        csspath = 0x0
        tmp = 0xd1208fd1bdd0bdd0 <error: Cannot access memory at address 0xd1208fd1bdd0bdd0>
        conf = 0xaaaaaad5cbf0 "# Override gtk theme\n# theme = \"Adwaita-dark\"\n# Override gtk icon theme\n# IconTheme = \"Adwaita\"\n\n# Display minimized windows on taskbars across all outputs\n# DisownMinimized = true\n\n# Select terminal "...
#28 0x0000aaaaaaaa2320 in activate (app=0xaaaaaac12e80, data=0x0) at ../src/sfwbar.c:113
        clist = Python Exception <class 'gdb.MemoryError'> Cannot access memory at address 0xd503233f54000441: 
#29 0x0000fffff7ea7b84 in g_closure_invoke () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#30 0x0000fffff7ebd3e0 in  () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#31 0x0000fffff7ebe6f8 in  () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#32 0x0000fffff7ec40b4 in g_signal_emit_valist () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#33 0x0000fffff7ec4174 in g_signal_emit () at /lib/aarch64-linux-gnu/libgobject-2.0.so.0
#34 0x0000fffff72fbee0 in  () at /lib/aarch64-linux-gnu/libgio-2.0.so.0
#35 0x0000fffff72fc024 in g_application_run () at /lib/aarch64-linux-gnu/libgio-2.0.so.0
#36 0x0000aaaaaaaa25fc in main (argc=1, argv=0xfffffffff9d8) at ../src/sfwbar.c:154
        app = 0xaaaaaac12e80
        status = 65535
        i = 1
(gdb) 

@LBCrion
Copy link
Owner

LBCrion commented Dec 11, 2024 via email

@Consolatis
Copy link
Contributor Author

Consolatis commented Dec 11, 2024

I think you found the culprit, no more double free without ASAN.
Also no more misaligned address errors with ASAN. Nice job!

Still getting the hash table != NULL "asserts" but I assume those are completely unrelated and I also don't know how to debug them without recompiling my GTK 3 stack.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants