Forum général.général Firefox/Iceweasel empêche le passage en idle

Posté par  . Licence CC By‑SA.
Étiquettes :
2
9
oct.
2014

Bonsoir,

Sous Debian (Wheezy et Jessie) j'avais un soucis avec Firefox/Iceweasel qui accédait en permanence au disque et du coup celui-ci ne passait jamais en idle.

J'ai essayé d'en savoir plus et j'ai démarré un Firefox en désactivant toutes les extensions et en arrivant sur une page vierge.
Avec un strace sur Firefox j'ai pleins de messages de ce genre:

00:03:11 read(22, "\372", 1)            = 1 <0.000042>
00:03:11 futex(0x7fdee43eff0c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x7fdee43eff08, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 <0.000076>
00:03:11 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000072>
00:03:11 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000057>
00:03:11 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000022>
00:03:11 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000058>
00:03:11 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000023>
00:03:11 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000019>
00:03:11 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000023>
00:03:11 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, -1) = 1 ([{fd=22, revents=POLLIN}]) <4.641282>
00:03:16 read(22, "\372", 1)            = 1 <0.000033>
00:03:16 futex(0x7fdeccd7548c, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, 0x7fdeccb91838, 4) = 1 <0.000100>
00:03:16 futex(0x7fdec4ddcc90, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000049>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000026>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 1 ([{fd=22, revents=POLLIN}]) <0.000014>
00:03:16 read(22, "\372", 1)            = 1 <0.000012>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000010>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000011>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000010>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000010>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000010>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000012>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000010>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000011>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000010>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, -1) = 1 ([{fd=22, revents=POLLIN}]) <0.000845>
00:03:16 read(22, "\372", 1)            = 1 <0.000011>
00:03:16 futex(0x7fdeccd7140c, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, 0x7fdeccb91768, 4) = 1 <0.000013>
00:03:16 futex(0x7fdec4d4cf50, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000012>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 1 ([{fd=22, revents=POLLIN}]) <0.000011>
00:03:16 read(22, "\372", 1)            = 1 <0.000011>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000012>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000011>
00:03:16 futex(0x7fdec916ef8c, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, 0x7fdec91c8b78, 4) = 1 <0.000015>
00:03:16 futex(0x7fdec91cf480, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000014>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 1 ([{fd=22, revents=POLLIN}]) <0.000011>
00:03:16 read(22, "\372", 1)            = 1 <0.000011>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000012>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000011>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000012>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>
00:03:16 poll([{fd=5, events=POLLIN}, {fd=4, events=POLLIN}, {fd=7, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN}, {fd=22, events=POLLIN}, {fd=29, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=24, events=POLLIN}], 8, 0) = 0 (Timeout) <0.000011>
00:03:16 recvfrom(4, 0x7fdef17d0074, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable) <0.000011>

En jetant un oeil dans /proc j'ai trouvé les correspondances:

4 -> socket:[15653]
5 -> anon_inode:[eventfd]
7 -> pipe:[15654]
10 -> socket:[15656]
22 -> pipe:[12957]
29 -> socket:[12977]
9 -> socket:[15655]
24 -> socket:[12958]

Et avec lsof | grep 15653:

iceweasel 4474             user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Gecko_IOT 4474 4479        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Socket    4474 4480        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
JS        4474 4481        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
JS        4474 4482        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
JS        4474 4483        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Hang      4474 4484        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Timer     4474 4485        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
DOM       4474 4524        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Cache     4474 4525        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
HTML5     4474 4526        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
mozStorag 4474 4535        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
localStor 4474 4536        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Cert      4474 4537        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
URL       4474 4538        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
mozStorag 4474 4539        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
mozStorag 4474 4544        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
dconf     4474 4545        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Proxy     4474 4546        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
gdbus     4474 4547        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
mozStorag 4474 4549        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
mozStorag 4474 4550        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
mozStorag 4474 4634        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
mozStorag 4474 4639        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Analysis  4474 4640        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Analysis  4474 4641        user    4u     unix 0xffff8800a5590480      0t0      15653 socket
Analysis  4474 4642        user    4u     unix 0xffff8800a5590480      0t0      15653 socket

Bref je suis un peu coincé et impossible de savoir d'où cela vient.
Il y a eu un genre de bug similaire sur Firefox mais il arrivait avec pleins d'onglets ouverts (alors que moi je n'en ai qu'un avec une page vierge):
https://bugzilla.mozilla.org/show_bug.cgi?id=508427

Est-ce que quelqu'un aurait un truc pour me permettre d'analyser un peu mieux ce strace de Firefox et savoir pourquoi il fait des trucs en permanence ?

Merci d'avance,

P.S. : ce n'est pas le fameux fsync de Firefox qui empêche le disque dur d'entrer en idle, j'ai vérifié.

  • # Quel WM ?

    Posté par  . Évalué à 1.

    Tu utilises quel environnement de bureau ? As-tu essayé d'en changer ?

    NFS ? iSCSI ? automounter ?

    • [^] # Re: Quel WM ?

      Posté par  . Évalué à 1.

      J'utilise Gnome (shell).
      Pourquoi est-ce que Gnome aurait une influence sur le comportement de Firefox ?

      Et sinon pas de NFS, iSCSI ou d'automounter.

  • # coupable ?

    Posté par  . Évalué à 2.

    comment as-tu decouvert/penser que c'etait firefox/iceweasel le coupable ?
    quels sont les preuves que c'est lui qui est en cause ?

    perso je regarderais d'abord avec "powertop"
    qui va dire qui consomme du courant (usb, disque, camera, etc)

    ensuite un lsofpour savoir qui s'en sert (lsof /dev/sdXY)
    ca va nous dire quel processus s'en sert.

    iostatdevrait permettre d'identifier le plus consommateur parmi les utilisateurs/processus du disque.

    • [^] # Re: coupable ?

      Posté par  . Évalué à 2.

      Relativement simple: sans Firefox (avec ou sans autres applications ouvertes), mon disque se met en veille très rapidement.
      Avec Firefox mon disque tourne en permanence.

      Est-ce que je fais une erreur de raisonnement ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.