Another possible problem with 9.3-STABLE-201501151844

Status
Not open for further replies.

rogerh

Guru
Joined
Apr 18, 2014
Messages
1,111
I upgraded to the latest release with the above today's update, having edited Update.py as advised. It seemed to work, but I got the following in /var/log/messages:
Code:
Jan 16 22:38:46 mojave updated.py: [freenasOS.Installer:303] Sub procss exited with status 0x100 


Is this likely to matter, and how can I tell?

While I am asking questions, how can I tell if the grub update worked?

Many thanks
Roger

Edit typo
Edit2 the typo in the error message is not mine
 
Last edited:
S

sef

Guest
That error may be due to a database migration failure; if so, you'll have a /data/update.failed in the new boot environment that will have details.

The grub update will take two updates, due to how it's done.
 

rogerh

Guru
Joined
Apr 18, 2014
Messages
1,111
There is no such file now, but I have run the subsequent update since. Thanks for the advice. I shall assume unless told otherwise that I can forget about the error, as it has not recurred. If it were important I suppose I could boot into the previous version to check. (Just did that: "/data/update.failed" not present.)

I still vaguely wonder if the grub update has gone through now, it seems to lie entirely outside the version/snapshot numbering system. However, I suppose it only matters if I get or do something that relies on the change. There is presumably no easy way for a user to revert it anyway.
 
S

sef

Guest
It will take two updates for the new version of grub to be installed. You can tell it works if zilstat works properly.
 

depasseg

FreeNAS Replicant
Joined
Sep 16, 2014
Messages
2,874
sef- do you mean that there are 2 more updates in the future to fix zilstat? I have 3 machines, all on FreeNAS-9.3-STABLE-201501162230 and zilstat doesn't work. Although I'm not getting a dtrace error anymore. I get a long message:
[root@freenas1] ~# zilstat -p tank
dtrace: invalid probe specifier
#pragma D option quiet
inline int OPT_time = 0;
inline int OPT_txg = 0;
inline int OPT_pool = 1;
inline int OPT_mega = 0;
inline int INTERVAL = 1;
inline int LINES = -1;
inline int COUNTER = -1;
inline int FILTER = 1;
inline string POOL = "tank";
dtrace:::BEGIN
{
/* starting values */
MEGA = 1000000;
counts = COUNTER;
secs = INTERVAL;
interval = INTERVAL;
interval == 0 ? interval++ : 1;
line = 0;
last_event[""] = 0;
nused=0;
nused_max_per_sec=0;
nused_per_sec=0;
size=0;
size_max_per_sec=0;
size_per_sec=0;
syncops=0;
size_4k=0;
size_4k_32k=0;
size_32k=0;
OPT_txg ? printf("waiting for txg commit...\n") : 1;
}

/*
* collect info when zil_lwb_write_start fires
*/
fbt::zil_lwb_write_start:entry
/OPT_pool == 0 || POOL == args[0]->zl_dmu_pool->dp_spa->spa_name/
{
nused += args[1]->lwb_nused;
nused_per_sec += args[1]->lwb_nused;
size += args[1]->lwb_sz;
size_per_sec += args[1]->lwb_sz;
syncops++;
args[1]->lwb_sz <= 4096 ? size_4k++ : 1;
args[1]->lwb_sz > 4096 && args[1]->lwb_sz < 32768 ? size_4k_32k++ : 1;
args[1]->lwb_sz >= 32768 ? size_32k++ : 1;
}

/*
* Timer
*/
profile:::tick-1sec
{
OPT_txg ? secs++ : secs--;
nused_per_sec > nused_max_per_sec ? nused_max_per_sec = nused_per_sec : 1;
nused_per_sec = 0;
size_per_sec > size_max_per_sec ? size_max_per_sec = size_per_sec : 1;
size_per_sec = 0;
}

/*
* Print header
*/
profile:::tick-1sec
/OPT_txg == 0 && line == 0/
{
/* print optional headers */
OPT_time ? printf("%-20s ", "TIME") : 1;

/* print header */
OPT_mega ? printf("%10s %10s %10s %10s %10s %10s",
"N-MB", "N-MB/s", "N-Max-Rate",
"B-MB", "B-MB/s", "B-Max-Rate") :
printf("%10s %10s %10s %10s %10s %10s",
"N-Bytes", "N-Bytes/s", "N-Max-Rate",
"B-Bytes", "B-Bytes/s", "B-Max-Rate");
printf(" %6s %6s %6s %6s\n",
"ops", "<=4kB", "4-32kB", ">=32kB");
line = LINES;
}

fbt::txg_quiesce:entry
/OPT_txg == 1 && POOL == args[0]->dp_spa->spa_name && line == 0/
{
OPT_time ? printf("%-20s ", "TIME") : 1;

OPT_mega ? printf("%10s %10s %10s %10s %10s %10s %10s",
"txg", "N-MB", "N-MB/s", "N-Max-Rate",
"B-MB", "B-MB/s", "B-Max-Rate") :
printf("%10s %10s %10s %10s %10s %10s %10s",
"txg", "N-Bytes", "N-Bytes/s", "N-Max-Rate",
"B-Bytes", "B-Bytes/s", "B-Max-Rate");
printf(" %6s %6s %6s %6s\n",
"ops", "<=4kB", "4-32kB", ">=32kB");
line = LINES;
}

/*
* Print Output
*/
profile:::tick-1sec
/OPT_txg == 0 && secs == 0/
{
OPT_time ? printf("%-20Y ", walltimestamp) : 1;
OPT_mega ?
printf("%10d %10d %10d %10d %10d %10d",
nused/MEGA, nused/(interval*MEGA), nused_max_per_sec/MEGA,
size/MEGA, size/(interval*MEGA), size_max_per_sec/MEGA) :
printf("%10d %10d %10d %10d %10d %10d",
nused, nused/interval, nused_max_per_sec,
size, size/interval, size_max_per_sec);
printf(" %6d %6d %6d %6d\n",
syncops, size_4k, size_4k_32k, size_32k);
nused = 0;
nused_per_sec = 0;
nused_max_per_sec = 0;
size=0;
size_max_per_sec=0;
size_per_sec=0;
syncops=0;
size_4k=0;
size_4k_32k=0;
size_32k=0;
secs = INTERVAL;
counts--;
line--;
}

fbt::txg_quiesce:entry
/OPT_txg == 1 && POOL == args[0]->dp_spa->spa_name/
{
secs <= 0 ? secs=1 : 1;
OPT_time ? printf("%-20Y ", walltimestamp) : 1;
OPT_mega ?
printf("%10d %10d %10d %10d %10d %10d %10d", args[1],
nused/MEGA, nused/(secs*MEGA), nused_max_per_sec/MEGA,
size/MEGA, size/(secs*MEGA), size_max_per_sec/MEGA) :
printf("%10d %10d %10d %10d %10d %10d %10d", args[1],
nused, nused/secs, nused_max_per_sec,
size, size/secs, size_max_per_sec);
printf(" %6d %6d %6d %6d\n",
syncops, size_4k, size_4k_32k, size_32k);
nused = 0;
nused_per_sec = 0;
nused_max_per_sec = 0;
size=0;
size_max_per_sec=0;
size_per_sec=0;
syncops=0;
size_4k=0;
size_4k_32k=0;
size_32k=0;
secs = 0;
counts--;
line--;
}

/*
* End of program
*/
profile:::tick-1sec
/OPT_txg == 0 && counts == 0/
{
exit(0);
}
fbt::txg_quiesce:entry
/OPT_txg == 1 && counts == 0/
{
exit(0);
}
: in action list: index 1 is out of range for fbt::zil_lwb_write_start:entry args[ ]
[root@freenas1] ~#
 
S

sef

Guest
No, just that it takes two updates to do: the first update changes the update code to set up the environment that allows grub to be installed; the second update then updates grub.

This is generally going to be the case whenever the update code itself is changed -- the first update installs it in the new boot environment, and then the next update actually uses that code.
 

depasseg

FreeNAS Replicant
Joined
Sep 16, 2014
Messages
2,874
Is that "double update" process handled automatically when the user hits update? Perhaps that's why sometimes I see it reboot twice?
 
S

sef

Guest
No, that's why I said it will take two updates to install grub.

The double reboot should not be happening at this point, since the post-update script for the base-os and FreeNASUI packages runs the database migration script.
 

depasseg

FreeNAS Replicant
Joined
Sep 16, 2014
Messages
2,874
But there aren't any other available updates. I'm at FreeNAS-9.3-STABLE-201501162230 and zilstat isn't working.
 
S

sef

Guest
Yes, it will take another update for it to work.

You could also install a later Nightly build, which would accomplish the same thing. But unless you need zilstat working right now, I don't see any particular hurry for it -- I haven't done this on my system at home, for example.
 

rogerh

Guru
Joined
Apr 18, 2014
Messages
1,111
Well I'm on FreeNAS-9.3-STABLE-201501162230, reached viaFreeNAS-9.3-STABLE-201501151844, and zilstat seems to work. Perhaps there is another problem, or perhaps some did not install 1844 because of the problems at that stage. It will be interesting what happens after the next update.
 
Status
Not open for further replies.
Top