How to troubleshoot crashes when no crash report is generated?
I'm having an issue where Firefox (Linux, 96.0.3) will crash after it's been running for a while but no crash report is generated. This is on an older Intel NUC with 2GB RAM running Clear Linux and intended to be used as a digital sign. No other applications are running. There is only a single tab loading a single page from localhost. No extensions are installed. The page is a simple layout using CSS grid. Javascript is used to create a slider with four slides, to cycle through a series of videos hosted locally, and periodically check for content updates. Below is the JS in it's entirety.
My feeling is that it's a memory issue, possibly to do with the video playlist, but I've been monitoring memory usage via about:performance and the tab with the sign has never used more than about 5MB. I've also been monitoring the system resources via htop and I've never seen it go higher than about 1000MB. How can I track down this issue?
Thanks in advance!
<script>
const swiper = new Swiper('.swiper', { autoplay:{delay:10000}, loop:true, effect: 'fade', fadeEffect:{crossFade:true} }); let video = document.querySelector('video'), source = video.querySelector('source'), vids = Object.values(JSON.parse('!getVideos')), i = 1; //start at 1 instead of 0 because the first is already playing video.addEventListener('ended', function(){ source.src = vids[i++]; if(i == vids.length) i = 0; video.load(); video.play(); }); //check for content updates let seconds = 60, lastUpdate = null; setInterval(() => { let req = new Request('~6'), headers = new Headers(); headers.append('cache-control', 'no-store, must-revalidate'); fetch(req, {method:'GET', headers:headers}) .then(response => response.json()) .then(data => { let updated = JSON.stringify(data) if(lastUpdate === null) lastUpdate = updated; if(lastUpdate !== updated) location.reload(); }).catch(console.error); }, (seconds * 1000));
</script>
Được chỉnh sửa bởi dwillis840 vào
Tất cả các câu trả lời (10)
What version of Firefox? Are you using Firefox from your distro or Mozilla? Are you familiar with strace?
jonzn4SUSE said
What version of Firefox?
96.0.3
Are you using Firefox from your distro or Mozilla?
From the distro. It was a flatpak.
Are you familiar with strace?
I am not. I will google it now.
I just realized the screenshot I added to my post somehow didn't make it there so I'm adding it again here.
Flatpak.... I would use Firefox from Mozilla and see if you have the same issues. https://www.mozilla.org/en-US/firefox/all/#product-desktop-release
I downloaded FF from Mozilla and ran it but still had the same issue. It crashed after an hour or so and no crash report logged. In my research I learned about Pale Moon and I've been testing with it today. It's been running for a few hours now with no crashes.
I'm still trying to figure out how to use strace.
just run the cmds from the screenshot and after the crash take a look in the log to see what happened.
We don't need the entire log file, just what happened at the time of the crash.
Thank you; that was helpful. I ran the commands per your instructions. Here is the console output from them:
pdol@PDOL-Lobby~ $ firefox &
[1] 12710
pdol@PDOL-Lobby~ $ ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
strace -o firefox_logs -t -p 12710
strace: Process 12710 attached
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
[1]+ Killed firefox
The full log file can be seen here: https://cloudvyzor.com/logpad/?query&database=sandbox-30d86b3f63d5ebedc7f3e06a76e384cb
Here is the log from the final second before it crashed:
13:31:03 recvmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="#\223\367\355\0\0\0\0\2\0\0\0\231\0\200\2-\0\200\2\2666\3\0\235\0\200\2\236\0\200\2"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 72 13:31:03 write(32, "\372", 1) = 1 13:31:03 recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) 13:31:03 poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=11, events=POLLIN}, {fd=29, events=POLLIN}, {fd=31, events=POLLIN}], 6, 0) = 1 ([{fd=31, revents=POLLIN}]) 13:31:03 read(31, "\372", 1) = 1 13:31:03 recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) 13:31:03 poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=11, events=POLLIN}, {fd=29, events=POLLIN}, {fd=31, events=POLLIN}], 6, 0) = 0 (Timeout) 13:31:03 recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) 13:31:03 poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=11, events=POLLIN}, {fd=29, events=POLLIN}, {fd=31, events=POLLIN}], 6, 0) = 0 (Timeout) 13:31:03 recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) 13:31:03 poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=11, events=POLLIN}, {fd=29, events=POLLIN}, {fd=31, events=POLLIN}], 6, 0) = 0 (Timeout) 13:31:03 recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) 13:31:03 poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=11, events=POLLIN}, {fd=29, events=POLLIN}, {fd=31, events=POLLIN}], 6, -1 <unfinished ...>) = ? 13:31:04 +++ killed by SIGKILL +++
I forgot to mention that I got a screenshot of htop while FF was hung right before a previous crash.
Được chỉnh sửa bởi dwillis840 vào
Since your issue is with a script I would post that question here. https://unix.stackexchange.com/ Nothing stood out to me, but I'm sure with the output from strace someone with more script experience should be able to help.