jun7 / rox-filer

ROX file manager
24 stars 6 forks source link

rox freezes when opening /proc #214

Closed mrfricks closed 4 years ago

mrfricks commented 4 years ago

hi jun7, an old bug seems to have crept back into rox-filer. when opening /proc rox freezes and requires a complete restart. /proc is a virtual file-system populated by the kernel and consists of lots of 'zero' size files.

the old commit that fixed it is here https://github.com/rox-desktop/rox-filer/commit/069c9b0478f8d6bc9b5477cdcefa4db3f9dd9b85#diff-83c8f5ce3c6adb568db78c66cd5098d1 it seems rox borked when trying to thumbnail lots of zero size files.

cheers

jun7 commented 4 years ago

Hi. It is not reproduced in my environment. So could you check if it is fixed?

mrfricks commented 4 years ago

hi jun7, i tried with the latest rox and i still have the same problem here. it seems to get halfway through thumb-nailing the files in /proc and then freezes.

JakeSFR commented 4 years ago

I also wasn't able to reproduce it in Fatdog, but we have a lot of custom patches, so I build a pristine ROX without any of them and it "worked" indeed - entering /proc freezes ROX for me, too.

Turns out that the /proc freeze has been re-introduced with this commit, which we have reverted in FD: https://github.com/jun7/rox-filer/commit/42afa0240bcd573a5ca69303f3296acbebca8951

Phil, you may want to double-check my finding, just revert that commit before building ROX.

EDIT: specifically this change seems to be responsible for the freeze: https://github.com/jun7/rox-filer/commit/42afa0240bcd573a5ca69303f3296acbebca8951#diff-3ce8f150caaf0389ff29e000151631d0L517-L519

-  if (statbuf->st_size == 0)
-    return XDG_MIME_TYPE_EMPTY;
-
jun7 commented 4 years ago

Hmm the commit I pushed have the check size==0. Does the freeze not happen with the

-  if (statbuf->st_size == 0)
-    return XDG_MIME_TYPE_EMPTY;

?

Does it happen only with "Show thumbnails"? Even happes without Directory thumbs? I think there is no files having a thumb in the proc. What files are in the MIME-thumb? Is there a log outputed by thumbnailler or something what makes out which file is processed?

JakeSFR commented 4 years ago

Hmm the commit I pushed have the check size==0. Does the freeze not happen with the

if (statbuf->st_size == 0) return XDG_MIME_TYPE_EMPTY;

?

Correct, no more freeze with the above code.

Does it happen only with "Show thumbnails"?

No, also with thumbnails disabled.

Even happes without Directory thumbs?

With and without.

I think there is no files having a thumb in the proc. What files are in the MIME-thumb?

I just deleted the entire MIME-thumb dir and it still happens.

Is there a log outputed by thumbnailler or something what makes out which file is processed?

It doesn't seem to be caused by thumbnailing at all, rather by MIME-type'ing. After re-adding the above code, ROX no longer freezes in /proc, regardless of file/dir thumbnail settings.

jun7 commented 4 years ago

Thank you for reporting!

JakeSFR commented 4 years ago

Confirmed, with https://github.com/jun7/rox-filer/commit/f3f4bb38f563546d3be20ba46f932c40c4d614c0 ROX no longer freezes in /proc for me, thanks!