Open Bug 1888601 Opened 1 year ago

The fork server doesn't prevent about:restartrequired after updates on FreeBSD

Categories

(Core :: IPC, defect)

Unspecified
FreeBSD
defect

Tracking

()

People

(Reporter: jld, Unassigned)

References

(Blocks 1 open bug)

Details

I have an old laptop that I installed FreeBSD on a while back. It runs release Firefox via pkg, and I turned on dom.ipc.forkserver.enable in about:config. Recently I updated from 124.0 to 124.0.1 and got about:restartrequired when I opened a new tab before restarting; in theory shouldn't happen with the fork server enabled, because the content process should have been forked with the correct version of the files it needs already opened and mapped. This is reproducible, and I also found that reinstalling the old version (with the browser still running) doesn't fix it.

I didn't have debug symbols and I don't currently have a build environment for FreeBSD, but I was able to find out that the child process is returning 1 from main at some point after it sets the main thread name to MainThread, and I suspect the cause is the attempt to find the executable path — if it fails because the executable is unlinked, then NS_ERROR_FAILED is returned from XRE_InitCommandLine to XRE_InitChildProcess to content_process_main where we return 1 which is eventually returned from actual main.

Maybe it would be possible to cache the value like in bug 1790419, but I haven't tried it and I don't know whether there are other bugs affecting this use case.

You need to log in before you can comment on or make changes to this bug.