Pesquisar no apoio

Evite burlas no apoio. Nunca iremos solicitar que telefone ou envie uma mensagem de texto para um número de telefone ou que partilhe informações pessoais. Por favor, reporte atividades suspeitas utilizando a opção "Reportar abuso".

Learn More

How to troubleshoot crashes when no crash report is generated?

  • 10 respostas
  • 1 tem este problema
  • 4 visualizações
  • Última resposta por jonzn4SUSE

more options

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>

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>

Modificado por dwillis840 a

Todas as respostas (10)

more options

What version of Firefox? Are you using Firefox from your distro or Mozilla? Are you familiar with strace?

more options

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.

more options

I just realized the screenshot I added to my post somehow didn't make it there so I'm adding it again here.

more options

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

more options

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.

more options

just run the cmds from the screenshot and after the crash take a look in the log to see what happened.

more options

We don't need the entire log file, just what happened at the time of the crash.

more options

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 +++

more options

I forgot to mention that I got a screenshot of htop while FF was hung right before a previous crash.

Modificado por dwillis840 a

more options

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.