From: Vyacheslav Dubeyko <slava-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
To: "Сергей Александров"
<splavgm-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"Ryusuke Konishi"
<konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: very large mount time after unxepected power down
Date: Wed, 28 Nov 2012 11:10:00 +0400 [thread overview]
Message-ID: <1354086600.2122.41.camel@slavad-ubuntu> (raw)
In-Reply-To: <CAFPMYnFKKwfRD6zpO_AYCMXP5U_deHfOF6CXGdd6jjMjVkMJ6w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Hi,
On Tue, 2012-11-27 at 12:58 +0300, Сергей Александров wrote:
> As I expected, no new info:
> [57291.417113] NILFS warning: mounting unchecked fs
> [57291.417125] NILFS: nilfs_search_super_root
> [57291.417132] NILFS: pseg_start 115603456, seg_seq 4347757
> [57291.417137] NILFS: cno 1252241, segnum 56447
> [62768.349242] NILFS: recovery complete.
> [62768.351804] segctord starting. Construction interval = 5 seconds,
> CP frequency < 30 seconds
>
> So, I suppose, nilfs is searching for a super root for a very long
> time and find's out that it is consistent.
Currently, I have such picture of the issue's nature. The key details
are: (1) long system uptime; (2) sudden power-off; (3) special case of
interrelation of s_last_pseg fields in primary and secondary
superblocks. This combination of factors leads to the situation when the
issue takes place.
The NILFS2 volume has two superblocks (primary and secondary). Only one
superblock is active after filesystem mount and to keep actual
superblock state. Another superblock keeps previous superblock's state
and previous value of s_last_pseg field. When it is detected an invalid
state of log for the value of s_last_pseg in actual superblock then it
makes trying to search a previous valid supper root block. If we have
previous value of s_last_pseg in another superblock then it is possible
to find previous valid super root by means of passing through the chain
of log starting from the s_last_pseg of backup superblock. Usually, all
works fine for the case when the s_last_pseg field in actual superblock
is greater than s_last_pseg field in backup superblock. So, if we have
other situation (s_last_pseg field of actual superblock is lesser than
s_last_pseg field of backup superblock) then it needs to pass through
logs' chain from the end of volume to the volume begin. Such logic
results in the issue only when we have s_last_pseg field of actual
superblock is lesser than s_last_pseg field of backup superblock and a
slightly small difference in values. So, for the case if s_last_pseg of
actual superblock has 115603456 and s_last_pseg of backup superblock has
160163840 values then we need to passing through the whole volume
starting from the end.
I think that a proper fix of the issue is to make periodic flushing of
backup superblock in the case of long system uptime with the purpose to
have reasonable difference between of s_last_pseg field of actual
superblock and s_last_pseg field of backup superblock. I am going to fix
the issue in such way.
With the best regards,
Vyacheslav Dubeyko.
> --------------------------------------------------
> Александров Сергей Васильевич
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2012-11-28 7:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAFPMYnE3ybWO4o=E1UonAZJ7Uwn5y9n4840ksYGAu7qAYJ0zKw@mail.gmail.com>
[not found] ` <CAFPMYnE3ybWO4o=E1UonAZJ7Uwn5y9n4840ksYGAu7qAYJ0zKw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-10-30 13:20 ` very large mount time after unxepected power down Сергей Александров
[not found] ` <CAFPMYnEZ28qvwkE3kaB59h2rD_8noT+gQtp7Hs6uvmHcL6KzYA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-10-30 13:49 ` Vyacheslav Dubeyko
2012-10-30 14:30 ` Сергей Александров
[not found] ` <CAFPMYnHhtFxuVZOMu9MZ6Xb74mFPm1a-4axyFKkHiJjDEW_4BA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-10-30 14:52 ` Vyacheslav Dubeyko
2012-10-30 15:02 ` Сергей Александров
[not found] ` <CAFPMYnGn4aNf=5B9v93TtTc6x4hG1ULgt0P9i75uO=xGX0U2bg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-10-30 17:35 ` Vyacheslav Dubeyko
[not found] ` <AFFE5823-0AD0-488C-B465-55CF45A10785-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2012-10-31 3:51 ` Сергей Александров
[not found] ` <CAFPMYnEtXMr1UOVYdNNRxxH83=O-_UOR_ZhCdqjh+JuUNrFiDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-10-31 6:13 ` Vyacheslav Dubeyko
2012-10-31 18:06 ` Сергей Александров
[not found] ` <CAFPMYnHB=x2y3C-bVSEcaT2nMYn12zc5Jnr56ph31zBbym4Kfw@mail.gmail.com>
[not found] ` <CAFPMYnHB=x2y3C-bVSEcaT2nMYn12zc5Jnr56ph31zBbym4Kfw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-15 4:07 ` Сергей Александров
[not found] ` <CAFPMYnE2j0DjiqcSuJRiJX5hfDjHoyh-WUhG0cMav9K=tbsLDQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-15 6:32 ` Vyacheslav Dubeyko
[not found] ` <CAFPMYnH4npNU8dJKAHwjatxAA=WoT10EWho5xyYjZJjz4uOYBA@mail.gmail.com>
[not found] ` <CAFPMYnG6zjT6-=x7XcVuuCp1__H0FhCBfNmyrfQi8dNpWC_m2w@mail.gmail.com>
[not found] ` <CAFPMYnG6zjT6-=x7XcVuuCp1__H0FhCBfNmyrfQi8dNpWC_m2w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-16 6:26 ` Vyacheslav Dubeyko
2012-11-16 6:40 ` Сергей Александров
[not found] ` <CAFPMYnFLSZW068cFZ4FqDKF5sS_zF3SoV=vPG2=m+kvaxq-BZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-16 6:53 ` Vyacheslav Dubeyko
2012-11-16 7:11 ` Сергей Александров
[not found] ` <CAFPMYnEYnLv5e6a3ZcFRjw-8cNB80T5=mpuiX9jaWa+pEj8Q-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-16 7:37 ` Vyacheslav Dubeyko
2012-11-16 13:52 ` Vyacheslav Dubeyko
2012-11-16 13:56 ` Сергей Александров
[not found] ` <CAFPMYnHzghu8k36wQj5h4K7a2wS6EcURcQmCOUTb5B2CJB9ufQ@mail.gmail.com>
[not found] ` <CAFPMYnHzghu8k36wQj5h4K7a2wS6EcURcQmCOUTb5B2CJB9ufQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-26 20:10 ` Vyacheslav Dubeyko
[not found] ` <782558C7-081D-4466-8780-51886E209A62-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org>
2012-11-26 19:17 ` Сергей Александров
[not found] ` <CAFPMYnGT1byuVA1hCnETWc2GZAbDsjeS95-F8f15QYPe_YHABA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-27 7:12 ` Vyacheslav Dubeyko
2012-11-27 7:47 ` Сергей Александров
[not found] ` <CAFPMYnFTvQVTC7sgmq=9sx4hX7fKkXyjNHSRXay3yTuRQsOq4w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-27 7:58 ` Vyacheslav Dubeyko
2012-11-27 8:03 ` Сергей Александров
[not found] ` <CAFPMYnEPJLQs9TVMy8PFXqV-XvsM8oTvrf_XTE0+g9cQ+5MJXA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-27 9:58 ` Сергей Александров
[not found] ` <CAFPMYnFKKwfRD6zpO_AYCMXP5U_deHfOF6CXGdd6jjMjVkMJ6w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-27 11:29 ` Vyacheslav Dubeyko
2012-12-03 13:56 ` Vyacheslav Dubeyko
2012-11-28 7:10 ` Vyacheslav Dubeyko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1354086600.2122.41.camel@slavad-ubuntu \
--to=slava-yeenwd64clxbdgjk7y7tuq@public.gmane.org \
--cc=konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org \
--cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=splavgm-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).