Bug 268516

Summary: net-im/profanity segfaults after most recent updates
Product: Ports & Packages Reporter: Henrich Hartzer <henrichhartzer>
Component: Individual Port(s)Assignee: Ashish SHUKLA <ashish>
Status: Closed Overcome By Events    
Severity: Affects Only Me CC: henrichhartzer
Priority: --- Keywords: crash, needs-qa, regression
Version: LatestFlags: bugzilla: maintainer-feedback? (ashish)
Hardware: amd64   
OS: Any   

Description Henrich Hartzer 2022-12-22 17:57:01 UTC
Seeing this on FreeBSD 12.3. After doing updates, (latest, not quarterly) Profanity segfaults when I go to launch it. Not sure yet which dependency is causing the issue. I don't know if Profanity just needs to be rebuilt.

Thank you!
Comment 1 Henrich Hartzer 2022-12-22 18:13:47 UTC
I tried rebuilding profanity and it's still segfaulting.
Comment 2 Ashish SHUKLA freebsd_committer freebsd_triage 2022-12-23 05:17:34 UTC
(In reply to Henrich Hartzer from comment #1)

Could you please rebuild profanity with debug symbols enabled, i.e. -DWITH_DEBUG:

  % sudo make -DWITH_DEBUG -C /usr/ports/net-im/profanity clean build deinstall reinstall clean

And then run it under a debugger (gdb, or lldb):

  % gdb $(which profanity)

  (gdb) run
  ....

  (gdb) bt all

OR:

  % lldb $(which profanity)

  (lldb) run
  ....

  (lldb) bt all


And share the output here. That'll help with what's causing the problem, as I don't have a 12.x host to test it out.

And could you please also share the output of: pkg info -a

Thanks!
Comment 3 Henrich Hartzer 2022-12-23 18:25:36 UTC
(In reply to Ashish SHUKLA from comment #2)

Hi!

Let me start with the backtrace. Let me know if this helps or not.

Thanks!

Process 58968 stopped
* thread #1, name = 'profanity', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x000000080127649f libc.so.7`strlen(str=0x0000000000000000) at strlen.c:101:8
   98            * boundaries is integral multiple of word size.
   99            */
   100          lp = (const unsigned long *)((uintptr_t)str & ~LONGPTR_MASK);
-> 101          va = (*lp - mask01);
   102          vb = ((~*lp) & mask80);
   103          lp++;
   104          if (va & vb)

* thread #1, name = 'profanity', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x000000080127649f libc.so.7`strlen(str=0x0000000000000000) at strlen.c:101:8
    frame #1: 0x0000000800fd0918 libreadline.so.8`_rl_init_locale + 200
    frame #2: 0x0000000800fd0956 libreadline.so.8`_rl_init_eightbit + 22
    frame #3: 0x0000000800fac89e libreadline.so.8`rl_initialize + 238
    frame #4: 0x0000000800fcc148 libreadline.so.8`rl_callback_handler_install + 40
    frame #5: 0x00000000002ad7a6 profanity`create_input_window at inputwin.c:155:5
    frame #6: 0x00000000002a70e9 profanity`ui_init at core.c:109:5
    frame #7: 0x0000000000276d54 profanity`_init(log_level="WARN", config_file=0x0000000000000000, log_file=0x0000000000000000, theme_name=0x0000000000000000) at profanity.c:205:5
    frame #8: 0x0000000000276b08 profanity`prof_run(log_level="WARN", account_name=0x0000000000000000, config_file=0x0000000000000000, log_file=0x0000000000000000, theme_name=0x0000000000000000) at profanity.c:102:5
    frame #9: 0x0000000000326b7c profanity`main(argc=1, argv=0x00007fffffffea38) at main.c:186:5
    frame #10: 0x0000000000270f90 profanity`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1.c:76:7
Comment 4 Henrich Hartzer 2022-12-23 18:26:54 UTC
I'm trying to downgrade readline, but am having an issue. It seems like it might be a pkgng bug.

zsh# pkg install ./readline-8.1.2.pkg
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be DOWNGRADED:
        readline: 8.2.0 -> 8.1.2

Number of packages to be downgraded: 1

Proceed with this action? [y/N]: y
pkg: archive_read_open_filename((null)): Failed to open '(null)'
Comment 5 Ashish SHUKLA freebsd_committer freebsd_triage 2022-12-23 19:03:43 UTC
(In reply to Henrich Hartzer from comment #4)

You need to do: sudo pkg add -f ./package.pkg
Comment 6 Henrich Hartzer 2022-12-23 19:45:03 UTC
(In reply to Ashish SHUKLA from comment #5)

Thank you! It's readline! 8.2.0 segfaults, 8.1.2 is fine.
Comment 7 Henrich Hartzer 2022-12-23 19:46:54 UTC
If I build readline 8.2.0 from ports, it also segfaults.
Comment 8 Henrich Hartzer 2023-01-20 01:13:33 UTC
This works on FreeBSD 13.1, so seems it may be just 12.3. Even with readline 8.2.0.
Comment 9 Henrich Hartzer 2023-12-30 01:49:48 UTC
With FreeBSD 12.x EOL, I am marking this as overcome by events. Thank you!