id summary reporter owner description type status priority milestone component version resolution keywords cc blockedby blocking branch_state votes 4147 mc hangs accessing files within a .tar.gz within a cpio within an rpm for first 60 seconds nvwarr andrew_b "In lib/vfs/gc.c in the function vfs_expire, curr_time and exp_time are declared guint64. curr_time is initialised with a timestamp and exp_time with this timestamp minus 60 seconds. Later there is if (stamping->time <= exp_time). Prior to commit a94dd7d2ded0dd3ce3f6cd2c56612327d065b5ac curr_time was initialised with a value larger than 60 seconds, so everything was fine. This commit changed the initialisation to a timer starting when mc is started. So for the first 60 seconds, the result of the subtraction is negative, but it is a guint64, so we just get a VERY large unsigned value and the if (stamping->time <= exp_time) is always true. So mc thinks the vfs hasn't been used recently and goes into an infinite loop. If one opens a .rpm file with mc and goes into the CONTENTS.cpio and then tries to go into the .tar.gz there (this is the usual structure of a .rpm) after waiting 60 seconds, everything is fine. However, before 60 seconds, mc hangs. There may be other ways to trigger this, but this is how I discovered it. The fix is to remove the subtraction of 60 seconds when initialising exp_time and add them to the left-hand side of the comparison." defect closed major 4.8.26 mc-vfs 4.8.25 fixed merged committed-master