Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#15830 closed bug (fixed)

Regression - crash on exit with OpenSSL

Reported by: smallstepforman Owned by: nobody
Priority: normal Milestone: R1/beta2
Component: System Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

hrev54008 introduced regression where when I exit my Video Editor which uses MediaKit/ffmpeg, it crashes on exit / OPENSSL_cleanup/.../openssl_lh_strcasehash(). Previous revisions (up to and including hrev53966) did not crash. Booting into older revision and the application exits successfully. So this is an introduced regression between hrev53966 and hrev54008.

I dont directly link to OpenSSL, it is included via ffmpeg -> MediaKit

Attachments (1)

Medo-3966-debug-25-03-2020-05-16-50.report (36.7 KB ) - added by smallstepforman 4 years ago.
Debugger crash report

Download all attachments as: .zip

Change History (18)

by smallstepforman, 4 years ago

Debugger crash report

comment:1 by diver, 4 years ago

Are you sure that hrev54008 introduced this? This revision only touched PPMTranslator and Bluetooth.

comment:2 by smallstepforman, 4 years ago

<quote> So this is an introduced regression between hrev53966 and hrev54008. </quote>

comment:3 by waddlesplash, 4 years ago

Looks almost identical to this: http://freebsd.1045724.x6.nabble.com/PHP-7-2-SIGSEGV-in-OpenSSL-td6309302.html

Seems to imply the issue is somehow related to unload order. Does this not occur in MediaPlayer for instance?

comment:4 by waddlesplash, 4 years ago

Perhaps #10951 is related here (though this is __cxa_finalize directly, not in something called by it.)

Actually, this looks more like #6793. However this is on x86_64, which should have a GCC that does the right thing. So I'm not sure what the issue is then.

comment:5 by waddlesplash, 4 years ago

I also just noticed that libcrypto and libssl are still in the "Loaded Images" section of the debug report, so then I'm not sure how this is occurring. Maybe the destructor is being registered twice, somehow?

comment:6 by waddlesplash, 4 years ago

Is this reproducible with any other Media Kit app, or only your editor?

If only your editor, could you try to write a minimal reproduction case?

comment:7 by modeenf, 4 years ago

can this be related to #15837?

the workaround there : "go to /system/packages/administrative and install older openssl hpkg from previous state"

does that help?

comment:8 by waddlesplash, 4 years ago

No, that is unrelated. That issue is about libssl failing to be found; here it is loaded and there is a crash on exit. They are only related in the sense that we recently switched OpenSSL versions.

comment:9 by icculus, 4 years ago

The easiest reproduction case for this is just to run "curl" from the command line without arguments; when it tries to clean up libssl, it'll trigger this crash.

comment:10 by waddlesplash, 4 years ago

Are you on beta1 or nightly? At least on nightlies, curl seems to work still, so that is a separate issue I think.

comment:11 by icculus, 4 years ago

I installed beta1 from the anyboot .iso on the website, launched HaikuDepot and selected “check for updates,” once updates were done, rebooted, then problem will present itself.

comment:12 by waddlesplash, 4 years ago

Yes, that's a separate issue: #15837. curl and most other tools work on nightlies, this problem appears to be confined to a single application (smallstepforman's.) Something is different in the beta for some reason, it seems.

comment:13 by icculus, 4 years ago

Yes, you're right, issue #15837's fix did remedy the curl issue I mentioned; sorry for the confusion!

comment:14 by smallstepforman, 4 years ago

With a fresh update (hrev54069), the problem no longer occurs. Most likely the issue was due to mismatch in OpenSSL versions when creating ffmpeg tools. This appears to have been resolved with the latest upadte to SSL.

Safe to close.

comment:15 by waddlesplash, 4 years ago

Resolution: fixed
Status: newclosed

comment:16 by waddlesplash, 4 years ago

Thanks for the feedback!

comment:17 by nielx, 4 years ago

Milestone: UnscheduledR1/beta2

Assign tickets with status=closed and resolution=fixed within the R1/beta2 development window to the R1/beta2 Milestone

Note: See TracTickets for help on using tickets.