bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Confusing results when trying to debug fakeroot-hurd


From: Samuel Thibault
Subject: Re: Confusing results when trying to debug fakeroot-hurd
Date: Tue, 9 Dec 2014 01:47:40 +0100
User-agent: Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30)

Hello,

I investigated a bit and found the issue, which probably explains quite
a few other bugs:

- I added fprintf(stderr,"%s:%s", __FILE__, __func__); fflush(stderr);
  basically in all EBUSY places in libdiskfs, libnetfs, libfshelp

- I got it from libnetfs/netfs_S_file_set_translator.

That didn't make sense, since when making a symlink we just create the
file, and then set the translator once.

- Just to be sure, I printed np->nn_stat.st_mode. I got 0xffffffff,
  d'oh...

- Since that comes from netfs_validate_stat, I printed there
  np->nn_stat.st_mode, it was indeed 0xffffffff, and just to be sure, I
  printed netfs_node_netnode (np)->faked, I got 0xcb and 0x4ca, which
  don't make sense since it's supposed to be FAKE_* bits only!

- I thus checked the netnode allocator, new_node(), it indeed doesn't
  initialize the faked field. For regular files, the caller initializes
  it, but for anonymous files (typically symlinks), it wasn't done.

Thus the quite random issue only with symlinks, and
dh_install -plocales-all happens to create a huge lot of them.

Svante, thanks a lot for the investigate, and you'll probably want to
try the gnat build again.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]