* Stalled xfs_repair on 100TB filesystem
@ 2010-03-02 17:22 Jason Vagalatos
2010-03-03 0:25 ` Dave Chinner
2010-03-03 0:35 ` Stan Hoeppner
0 siblings, 2 replies; 6+ messages in thread
From: Jason Vagalatos @ 2010-03-02 17:22 UTC (permalink / raw)
To: xfs@oss.sgi.com
Hello,
On Friday 2/26 I started an xfs_repair on a 100TB filesystem:
#> nohup xfs_repair -v -l /dev/logfs-sessions/logdev /dev/logfs-sessions/sessions > /root/xfs_repair.out.logfs1.sjc.02262010 &
I've been monitoring the process with 'top' and tailing the output file from the redirect above. I believe the repair has "stalled". When the process was running 'top' showed almost all physical memory consumed and 12.6G of virt memory consumed by xfs_repair. It made it all the way to Phase 6 and has been sitting at agno = 14 for almost 48 hours. The memory consumption of xfs_repair has ceased but the process is still "running" and consuming 100% CPU:
top - 10:10:37 up 3 days, 21:06, 1 user, load average: 1.20, 1.13, 1.09
Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
Cpu(s): 12.5%us, 0.0%sy, 0.0%ni, 87.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8177380k total, 896668k used, 7280712k free, 247100k buffers
Swap: 56525356k total, 173852k used, 56351504k free, 304588k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32705 root 25 0 160m 95m 704 R 100 1.2 2629:53 xfs_repair
#> tail -f -n1000 xfs_repair.out.logfs1.sjc.02262010
........
- agno = 98
- agno = 99
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- agno = 0
- agno = 1
- agno = 2
- agno = 3
- agno = 4
- agno = 5
- agno = 6
- agno = 7
- agno = 8
- agno = 9
- agno = 10
- agno = 11
- agno = 12
- agno = 13
- agno = 14
<stopped here, fs has 99 ag's>
Is there anything I can do at this point to salvage the repair? I do not want to kill the repair process based on the amount of time it takes to run. If I do kill it, is there any risk of damaging the filesystem?
Any help would be greatly appreciated.
Thank you
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Stalled xfs_repair on 100TB filesystem
2010-03-02 17:22 Stalled xfs_repair on 100TB filesystem Jason Vagalatos
@ 2010-03-03 0:25 ` Dave Chinner
2010-03-03 0:35 ` Stan Hoeppner
1 sibling, 0 replies; 6+ messages in thread
From: Dave Chinner @ 2010-03-03 0:25 UTC (permalink / raw)
To: Jason Vagalatos; +Cc: xfs@oss.sgi.com
On Tue, Mar 02, 2010 at 09:22:34AM -0800, Jason Vagalatos wrote:
> Hello, On Friday 2/26 I started an xfs_repair on a 100TB
> filesystem:
>
> #> nohup xfs_repair -v -l /dev/logfs-sessions/logdev
> /dev/logfs-sessions/sessions >
> /root/xfs_repair.out.logfs1.sjc.02262010 &
>
> I've been monitoring the process with 'top' and tailing the output
> file from the redirect above. I believe the repair has
> "stalled". When the process was running 'top' showed almost all
> physical memory consumed and 12.6G of virt memory consumed by
> xfs_repair. It made it all the way to Phase 6 and has been
> sitting at agno = 14 for almost 48 hours. The memory consumption
> of xfs_repair has ceased but the process is still "running" and
> consuming 100% CPU:
I wish we could reproduce hangs like this easily. I'd kill the
repair and run with the -P option. From the xfs_repair man page:
-P Disable prefetching of inode and directory blocks. Use
this option if you find xfs_repair gets stuck and
proceeding. Interrupting a stuck xfs_repair is safe.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: Stalled xfs_repair on 100TB filesystem
2010-03-02 17:22 Stalled xfs_repair on 100TB filesystem Jason Vagalatos
2010-03-03 0:25 ` Dave Chinner
@ 2010-03-03 0:35 ` Stan Hoeppner
2010-03-03 0:44 ` Eric Sandeen
1 sibling, 1 reply; 6+ messages in thread
From: Stan Hoeppner @ 2010-03-03 0:35 UTC (permalink / raw)
To: xfs
Jason Vagalatos put forth on 3/2/2010 11:22 AM:
> Hello,
> On Friday 2/26 I started an xfs_repair on a 100TB filesystem:
>
> #> nohup xfs_repair -v -l /dev/logfs-sessions/logdev /dev/logfs-sessions/sessions > /root/xfs_repair.out.logfs1.sjc.02262010 &
>
> I've been monitoring the process with 'top' and tailing the output file from the redirect above. I believe the repair has "stalled". When the process was running 'top' showed almost all physical memory consumed and 12.6G of virt memory consumed by xfs_repair. It made it all the way to Phase 6 and has been sitting at agno = 14 for almost 48 hours. The memory consumption of xfs_repair has ceased but the process is still "running" and consuming 100% CPU:
Here's how another user solved this xfs_repair "hanging" problem. I say
"hang" because "stall" didn't return the right Google results.
http://marc.info/?l=linux-xfs&m=120600321509730&w=2
Excerpt:
"In betwenn I created a test filesystem 360GB with 120million inodes on it.
xfs_repair without options is unable to complete. If I run xfs_repair -o
bhash=8192 the repair process terminates normally (the filesystem is
actually ok)."
Unfortunately it appears you'll have to start the repair over again.
--
Stan
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Stalled xfs_repair on 100TB filesystem
2010-03-03 0:35 ` Stan Hoeppner
@ 2010-03-03 0:44 ` Eric Sandeen
2010-03-03 1:15 ` Jason Vagalatos
0 siblings, 1 reply; 6+ messages in thread
From: Eric Sandeen @ 2010-03-03 0:44 UTC (permalink / raw)
To: Stan Hoeppner; +Cc: xfs
Stan Hoeppner wrote:
> Jason Vagalatos put forth on 3/2/2010 11:22 AM:
>> Hello,
>> On Friday 2/26 I started an xfs_repair on a 100TB filesystem:
>>
>> #> nohup xfs_repair -v -l /dev/logfs-sessions/logdev /dev/logfs-sessions/sessions > /root/xfs_repair.out.logfs1.sjc.02262010 &
>>
>> I've been monitoring the process with 'top' and tailing the output file from the redirect above. I believe the repair has "stalled". When the process was running 'top' showed almost all physical memory consumed and 12.6G of virt memory consumed by xfs_repair. It made it all the way to Phase 6 and has been sitting at agno = 14 for almost 48 hours. The memory consumption of xfs_repair has ceased but the process is still "running" and consuming 100% CPU:
>
> Here's how another user solved this xfs_repair "hanging" problem. I say
> "hang" because "stall" didn't return the right Google results.
>
> http://marc.info/?l=linux-xfs&m=120600321509730&w=2
>
> Excerpt:
>
> "In betwenn I created a test filesystem 360GB with 120million inodes on it.
> xfs_repair without options is unable to complete. If I run xfs_repair -o
> bhash=8192 the repair process terminates normally (the filesystem is
> actually ok)."
>
> Unfortunately it appears you'll have to start the repair over again.
>
FWIW, Jason - which xfsprogs version are you running? This patch went in a while back:
> [PATCH] libxfs: increase hash chain depth when we run out of slots
> A couple people reported xfs_repair hangs after
> "Traversing filesystem ..." in xfs_repair. This happens
> when all slots in the cache are full and referenced, and the
> loop in cache_node_get() which tries to shake unused entries
> fails to find any - it just keeps upping the priority and goes
> forever.
>
> This can be worked around by restarting xfs_repair with
> -P and/or "-o bhash=<largersize>" for older xfs_repair.
>
> I started down the path of increasing the number of hash buckets
> on the fly, but Barry suggested simply increasing the max allowed
> depth which is much simpler (thanks!)
>
> Resizing the hash lengths does mean that cache_report ends up with
> most things in the "greater-than" category:
>
> ...
> Hash buckets with 23 entries 3 ( 3%)
> Hash buckets with 24 entries 3 ( 3%)
> Hash buckets with >24 entries 50 ( 85%)
>
> but I think I'll save that fix for another patch unless there's
> real concern right now.
>
> I tested this on the metadump image provided by Tomek.
>
> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
> Reported-by: Tomek Kruszona <bloodyscarion@gmail.com>
> Reported-by: Riku Paananen <riku.paananen@helsinki.fi>
> ---
-Eric
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: Stalled xfs_repair on 100TB filesystem
2010-03-03 0:44 ` Eric Sandeen
@ 2010-03-03 1:15 ` Jason Vagalatos
2010-03-03 2:08 ` Eric Sandeen
0 siblings, 1 reply; 6+ messages in thread
From: Jason Vagalatos @ 2010-03-03 1:15 UTC (permalink / raw)
To: Eric Sandeen, Stan Hoeppner; +Cc: xfs@oss.sgi.com
We are running xfs_repair v2.9.4. Will just the -P flag suffice for this version? What is the best way to calculate the bhash size value needed if we need to use that option too?
Thanks,
Jason Vagalatos
-----Original Message-----
From: xfs-bounces@oss.sgi.com [mailto:xfs-bounces@oss.sgi.com] On Behalf Of Eric Sandeen
Sent: Tuesday, March 02, 2010 4:44 PM
To: Stan Hoeppner
Cc: xfs@oss.sgi.com
Subject: Re: Stalled xfs_repair on 100TB filesystem
Stan Hoeppner wrote:
> Jason Vagalatos put forth on 3/2/2010 11:22 AM:
>> Hello,
>> On Friday 2/26 I started an xfs_repair on a 100TB filesystem:
>>
>> #> nohup xfs_repair -v -l /dev/logfs-sessions/logdev /dev/logfs-sessions/sessions > /root/xfs_repair.out.logfs1.sjc.02262010 &
>>
>> I've been monitoring the process with 'top' and tailing the output file from the redirect above. I believe the repair has "stalled". When the process was running 'top' showed almost all physical memory consumed and 12.6G of virt memory consumed by xfs_repair. It made it all the way to Phase 6 and has been sitting at agno = 14 for almost 48 hours. The memory consumption of xfs_repair has ceased but the process is still "running" and consuming 100% CPU:
>
> Here's how another user solved this xfs_repair "hanging" problem. I say
> "hang" because "stall" didn't return the right Google results.
>
> http://marc.info/?l=linux-xfs&m=120600321509730&w=2
>
> Excerpt:
>
> "In betwenn I created a test filesystem 360GB with 120million inodes on it.
> xfs_repair without options is unable to complete. If I run xfs_repair -o
> bhash=8192 the repair process terminates normally (the filesystem is
> actually ok)."
>
> Unfortunately it appears you'll have to start the repair over again.
>
FWIW, Jason - which xfsprogs version are you running? This patch went in a while back:
> [PATCH] libxfs: increase hash chain depth when we run out of slots
> A couple people reported xfs_repair hangs after
> "Traversing filesystem ..." in xfs_repair. This happens
> when all slots in the cache are full and referenced, and the
> loop in cache_node_get() which tries to shake unused entries
> fails to find any - it just keeps upping the priority and goes
> forever.
>
> This can be worked around by restarting xfs_repair with
> -P and/or "-o bhash=<largersize>" for older xfs_repair.
>
> I started down the path of increasing the number of hash buckets
> on the fly, but Barry suggested simply increasing the max allowed
> depth which is much simpler (thanks!)
>
> Resizing the hash lengths does mean that cache_report ends up with
> most things in the "greater-than" category:
>
> ...
> Hash buckets with 23 entries 3 ( 3%)
> Hash buckets with 24 entries 3 ( 3%)
> Hash buckets with >24 entries 50 ( 85%)
>
> but I think I'll save that fix for another patch unless there's
> real concern right now.
>
> I tested this on the metadump image provided by Tomek.
>
> Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
> Reported-by: Tomek Kruszona <bloodyscarion@gmail.com>
> Reported-by: Riku Paananen <riku.paananen@helsinki.fi>
> ---
-Eric
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Stalled xfs_repair on 100TB filesystem
2010-03-03 1:15 ` Jason Vagalatos
@ 2010-03-03 2:08 ` Eric Sandeen
0 siblings, 0 replies; 6+ messages in thread
From: Eric Sandeen @ 2010-03-03 2:08 UTC (permalink / raw)
To: Jason Vagalatos; +Cc: Stan Hoeppner, xfs@oss.sgi.com
Jason Vagalatos wrote:
> We are running xfs_repair v2.9.4. Will just the -P flag suffice for
> this version? What is the best way to calculate the bhash size value
> needed if we need to use that option too?
Good, that explains it then; the fix went in after that.
I think -P will suffice.
As for the bhash size ... really not sure. Doubling it from the default
is probably sufficient but I haven't really investigated it.
-Eric
> Thanks,
>
> Jason Vagalatos
>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-03-03 2:07 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-02 17:22 Stalled xfs_repair on 100TB filesystem Jason Vagalatos
2010-03-03 0:25 ` Dave Chinner
2010-03-03 0:35 ` Stan Hoeppner
2010-03-03 0:44 ` Eric Sandeen
2010-03-03 1:15 ` Jason Vagalatos
2010-03-03 2:08 ` Eric Sandeen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox