deb: Crash reporter does not restart Nightly. Consider using XREExeF for CrashReporter::SetRestartArgs.
Categories
(Toolkit :: Crash Reporting, defect)
Tracking
()
People
(Reporter: jan, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: nightly-community)
Gnome Wayland, Debian Testing, Intel
STR
- Downloaded https://firefoxci.taskcluster-artifacts.net/e4iBQ2HfQXK-noZm-UG22Q/0/public/build/target.deb
(from https://treeherder.mozilla.org/jobs?repo=mozilla-central&selectedTaskRun=e4iBQ2HfQXK-noZm-UG22Q.0&searchStr=Linux%2Cx64%2CShippable%2Copt%2Crepackage-deb-linux64-shippable%2Fopt%2CRpk-deb) - Tried to install:
darkspirit@darkspirit-laptop:~/Downloads$ sudo dpkg -i target.deb
Vormals nicht ausgewähltes Paket firefox-nightly wird gewählt.
(Lese Datenbank ... 313176 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von target.deb ...
Entpacken von firefox-nightly (113.0a1~20230331095100) ...
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von firefox-nightly:
firefox-nightly hängt ab von libgdk-pixbuf2.0-0 (>= 2.22.0); aber:
Paket libgdk-pixbuf2.0-0 ist nicht installiert.
- Fixed dependencies:
$ sudo apt-get -f install
Holen:1 https://mirror.eu.oneandone.net/debian testing/main amd64 libgdk-pixbuf-xlib-2.0-0 amd64 2.40.2-2 [47,9 kB]
Holen:2 https://mirror.eu.oneandone.net/debian testing/main amd64 libgdk-pixbuf2.0-0 amd64 2.40.2-2 [14,1 kB]
- Opened testcase:
$ firefox-nightly https://bug1683946.bmoattachments.org/attachment.cgi?id=9288209
- Crash reporter opened. Clicked on "Restart Nightly". (Report has been bp-a61391fc-1735-4783-b3f7-343200230331)
- Nightly did not restart.
Reporter | ||
Comment 1•1 year ago
•
|
||
Tested on KDE Wayland, Debian Testing:
Updated STR with a debian package that has a proper .desktop file (bug 1824327):
- Downloaded https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/U1-4EPJWSxqSwkC6LbzPng/runs/0/artifacts/public/build/target.deb
(from here) - Installed
$ sudo dpkg -i target.deb
- Ran:
$ firefox-nightly-try https://bug1683946.bmoattachments.org/attachment.cgi?id=9288209
ExceptionHandler::GenerateDump cloned child 26853
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
Exiting due to channel error.
Exiting due to channel error.
darkspirit@darkspirit-laptop:~$ Failed to open curl lib from binary, use libcurl.so instead - Clicked on "Restart Nightly".
- Nightly did not restart. (Report has been bp-8f850670-5555-4a6b-ae3d-000130230503.)
Reporter | ||
Comment 2•1 year ago
•
|
||
(I'm just a user.)
Debian Testing's firefox-esr package is affected by the same problem if started from command line:
$ sudo apt install firefox-esr
$ firefox-esr https://bug1683946.bmoattachments.org/attachment.cgi?id=9288209
Clicked on "Restart" and Firefox did not restart.
The problem does not occur if firefox-esr is started via main menu because the .desktop file contains the full path:
$ cat /usr/share/applications/firefox-esr.desktop | grep Exec
Exec=/usr/lib/firefox-esr/firefox-esr %u
Other apps' desktop files just contain Exec=konqueror etc.
$ firefox-nightly-try about:support
DISPLAY :0
MOZ_ASSUME_USER_NS 1
MOZ_CRASHREPORTER_EVENTS_DIRECTORY /home/darkspirit/.mozilla/firefox/evjne9ws.default-nightly-try/crashes/events
MOZ_CRASHREPORTER_RESTART_ARG_0 firefox-nightly-try
MOZ_CRASHREPORTER_RESTART_ARG_1 about:support
MOZ_CRASHREPORTER_RESTART_ARG_2
MOZ_CRASHREPORTER_DATA_DIRECTORY /home/darkspirit/.mozilla/firefox/Crash Reports
MOZ_CRASHREPORTER_PING_DIRECTORY /home/darkspirit/.mozilla/firefox/Pending Pings
MOZ_CRASHREPORTER_STRINGS_OVERRIDE /usr/lib/firefox-nightly-try/browser/crashreporter-override.ini
MOZ_LAUNCHED_CHILD
MOZ_APP_SILENT_START
XRE_PROFILE_PATH
XRE_PROFILE_LOCAL_PATH
XRE_START_OFFLINE
XRE_BINARY_PATH
XRE_RESTARTED_BY_PROFILE_MANAGER
I assume the problem is that CrashReporter::SetRestartArgs(gArgc, gArgv); does not contain the full path and the crash reporter uses execv which ignores the PATH variable.
With execvp it would work.
#include <unistd.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
char* arr[] = {"firefox-nightly-try", "https://www.google.com", NULL};
// printf("%d", execv(arr[0], arr)); // <-- doesn't start: -1
printf("%d", execvp(arr[0], arr)); // <-- starts
return 0;
}
From my naive understanding, either
- execvp should be used instead
or - it should be checked if gArgv for CrashReporter::SetRestartArgs(gArgc, gArgv); begins with "/" and if it does not, then the full path should be placed there (either /usr/bin/firefox-nightly-try or /usr/lib/firefox-nightly-try/firefox).
MOZ_CRASHREPORTER_STRINGS_OVERRIDE knows its path (/usr/lib/firefox-nightly-try/browser/crashreporter-override.ini):
GetAppDir() seems to be /usr/lib/firefox-nightly-try/browser/. GetGREDir() is used elsewhere.
Reporter | ||
Comment 3•11 months ago
•
|
||
(In reply to Darkspirit from comment #2)
(I'm just a user.)
Debian Testing's firefox-esr package is affected by the same problem if started from command line:
$ sudo apt install firefox-esr
$ firefox-esr https://bug1683946.bmoattachments.org/attachment.cgi?id=9288209
Clicked on "Restart" and Firefox did not restart.The problem does not occur if firefox-esr is started via main menu because the .desktop file contains the full path:
$ cat /usr/share/applications/firefox-esr.desktop | grep ExecExec=/usr/lib/firefox-esr/firefox-esr %u
Other apps' desktop files just contain Exec=konqueror etc.
about:support knows the correct path which should be used for restarting Firefox from the crash reporter.
Application Binary /usr/lib/firefox-nightly/firefox-bin
Updated•11 months ago
|
Updated•11 months ago
|
Reporter | ||
Comment 4•6 months ago
|
||
"about:crashparent > Restart Nightly" works now.
Description
•