On 01/29/2015 11:13 PM, Michal Koutný wrote:
> iii) Last one is the most insidious. In my version of init I ran into
> a page fault error raised inside VFS related libc code (below
> uspace/lib/c/generic/vfs/vfs.c:175). Somehow all but one ('fqsn')
> arguments of the function 'mount' are zeroed after return from
> 'loc_service_get_id' (line 167). This fault is not present when I
> increase time between devman start and considered 'mount' call
> (uspace/app/einit/init.c:213). I think that call to
> 'loc_service_get_id' blocks in the former case and does not in the
> latter. Is there something I should know about fibrils that could
> cause such a behavior? I've put relevant branch to Launchpad [1], I
> tried it on IA32 build with standard 'ew.py' start script.

Interesting. For me, the crash does not happen on amd64, only on ia32. I
see the following relevant output:

2x: ext4fs, /, bd/initrd,  ,
2x: locfs, /loc, null/0, ,
2x: tmpfs, /tmp, null/1, ,

And then I get:

Before the call to loc_service_get_id():
fat, /root, devices/\hw..., ,

After the call:

fat, /root, devices/\hw..., (null),

So in my case it is not fqsn but opts that gets zeroed. The crash then
happens on line 209 when we call str_size() on NULL opts.

It rather looks like something bad is happening with the stack.

Jakub

_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/listinfo/helenos-devel

Reply via email to