newfs silently fails if random is not ready (?)

Lev Serebryakov lev at FreeBSD.org
Tue Sep 4 21:10:37 UTC 2018


Hello Conrad,

Wednesday, September 5, 2018, 12:05:43 AM, you wrote:

> On Tue, Sep 4, 2018 at 1:55 PM, Lev Serebryakov <lev at freebsd.org> wrote:
>> Tuesday, September 4, 2018, 11:37:59 PM, you wrote:
>>> Is newfs tripping on a raise()/abort() in arc4random(3) /
>>> getentropy(3)?
>>   Nope, it is silently does nothing

> I think it is tripping on raise/abort() in one of these routines, but
> nothing is printing that information.  See below.
 Maybe, it should be fixed? One second after that random is ready to use and
newfs works as intended. It is, really, some race between early init script
(rc.initdiskless) and kernel. I don't think, that newfs must be
killed/aborted in such situation, it could wait!

>>>   Is your program that runs newfs checking for non-zero
>>> exit status?
>>   It is not "my" program, it is system mdmfs(8), and it checks exit
>>  statuses, as far as I can see from source code.

> Ah, thanks.  I missed this.  mdmfs(8) has a bug in its run() function.
> It treats programs that exit with a signal (KILL, ABRT, ILL, SEGV...)
> the same as programs that exit with success.  This is a (major)
> problem and the reason raise/abort is not visible.
 And it is another problem. But if it will be fixed, it doesn't help to init
system properly in my case, only diagnostic will be better.

-- 
Best regards,
 Lev                            mailto:lev at FreeBSD.org



More information about the freebsd-fs mailing list