[Opera-Linux] What's with all the "pipe" FDs in Opera?

Daniel Eckl daniel.eckl at gmx.de
Fri Jun 26 14:03:23 UTC 2009


2009/6/26 Eirik Byrkjeflot Anonsen <eirik at opera.com>:
> Eirik Byrkjeflot Anonsen <eirik at opera.com> writes:
>
>> Kenneth Crudup <kenny at panix.com> writes:
>>
>>> Every now and then, Opera gets into a state where it won't load pages.
>>> When this happens (pages across multiple tabs gets stuck in "Sending
>>> request to <site>" or "Compeleted request to <site>") I do an "lsof"
>>> and either see a large number of FDs of cache pages, or lately, a huge
>>> number of pipes:
>>>
>>> ----
>>> opera   22871 kenny    1w  FIFO                0,6             2483416 pipe
>>> opera   22871 kenny    2w  FIFO                0,6             2483416 pipe
>>> opera   22871 kenny    5r  FIFO                0,6             4795120 pipe
>>> opera   22871 kenny    6w  FIFO                0,6             4795120 pipe
>>> opera   22871 kenny   67w  FIFO                0,6             4798071 pipe
>>> opera   22871 kenny   73r  FIFO                0,6             4795129 pipe
>>> opera   22871 kenny   74w  FIFO                0,6             4795129 pipe
>>> opera   22871 kenny   75r  FIFO                0,6             4795133 pipe
>>> opera   22871 kenny  135r  FIFO                0,6             4798072 pipe
>>> opera   22871 kenny  182w  FIFO                0,6             4798073 pipe
>>> opera   22871 kenny  891r  FIFO                0,6             5737187 pipe
>>> opera   22871 kenny 1024r  FIFO                0,6             5731322 pipe
>>> opera   22871 kenny 1025w  FIFO                0,6             5731322 pipe
>>> opera   22871 kenny 1026r  FIFO                0,6             5731458 pipe
>>> opera   22871 kenny 1027w  FIFO                0,6             5731458 pipe
>>> opera   22871 kenny 1028r  FIFO                0,6             5731326 pipe
>>> opera   22871 kenny 1029w  FIFO                0,6             5731326 pipe
>>> opera   22871 kenny 1030r  FIFO                0,6             5731413 pipe
>>> opera   22871 kenny 1031w  FIFO                0,6             5731413 pipe
>>> opera   22871 kenny 1032r  FIFO                0,6             5731330 pipe
>>> opera   22871 kenny 1033w  FIFO                0,6             5731330 pipe
>>> <about 118 more of these>
>>> ----
>>>
>>> In any case, I think I can't browse 'cause I'm out of FDs again (currently
>>> up to 1350 FDs) So, if plugins are turned off, what's Opera pipe()ing to?
>>
>> Ouch.
>>
>> Even with plug-ins active (which your next post may indicate they are
>> after all...) it's hard to see any reason to create so many of them.
>>
>> Maybe if we are spawning new pluginwrappers and fail to kill off the old
>> pipes.  That would create two new pipes every time, I guess.
>>
>> Open files is even harder to understand.  Even if we fail to set
>> CLOEXEC, the file descriptor in the origin process should be closed and
>> gone when we close the file.  So that sounds like we're not closing the
>> files properly.  Which is really strange.
>
> Then again, when I look at my own opera (ls -la /proc/<pid>/fd), which
> has only been running for about 2 weeks and have never had plug-ins
> enabled, there's 194 open file descriptors, 124 of them pointing into
> cache and 50 into vps.  And I've even got the mail database open (6 file
> descriptors in total), even though I've never activated mail in this
> opera.
>
> None of that seems good to me.
>
> eirik

I really feel these two things, the FDs and the memory consumption,
are connected somehow. I bet solving one solves the other.
I know this isn't particularly helpful, but I had to say it, I
couldn't resist, sorry ;)

Daniel



More information about the Opera-Linux mailing list