all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Samuel Thibault <samuel.thibault@gnu.org>
To: Jan Nieuwenhuizen <janneke@gnu.org>
Cc: guix-devel@gnu.org, bug-hurd@gnu.org
Subject: Re: [PATCH] ext2fs: Update to upstream Hurd-reserved xattr index for "gnu.*".
Date: Tue, 12 May 2020 16:28:19 +0200	[thread overview]
Message-ID: <20200512142819.fzpeco3kk4ufqnlw@function> (raw)
In-Reply-To: <87sgg5z1gt.fsf@gnu.org>

Jan Nieuwenhuizen, le mar. 12 mai 2020 16:12:34 +0200, a ecrit:
> setfattr --name=gnu.translator --value='/hurd/pflocal\0' /mnt/servers/socket/1

man setfattr says

If the given string is enclosed in double quotes, the inner string is
treated as text.  In that case, backslashes and double quotes have
special meanings and need to be escaped by a preceding backslash.

so I guess it needs 

setfattr --name=gnu.translator --value='"/hurd/pflocal\0"' /mnt/servers/socket/1

to actually interpret \0

> --8<---------------cut here---------------start------------->8---
> fsck --yes --force /
> fsysopts / --writable
> mv /servers/socket/1 /servers/socket/1-linux
> touch /servers/socket/1
> setfattr --name=gnu.translator --value='/hurd/pflocal\0' /servers/socket/1

Note that glibc's setxattr, i.e. _hurd_xattr_set, translates that
into a __file_set_translator() RPC call. Did you pass the proper option
to make ext2fs record the translator as xattr instead of passive record?

> And I guess there must be an incompatibility between Linux and the Hurd
> in how setfattr embeds the xattr attributes into the file system.
> 
> How to best "diff" this aspect in the file system; how to proceed?

debugfs can be used for that.

> Inspired by Shengyu's GSoC code that simply seemed to use fprintf for
> debbugging, I tried adding some debug printing in inode.c
> 
>     fprintf (stderr, "gnu.translator[%d,%d]=%s\n", datalen, strlen (*namep), *namep);

Printf is the simplest way to make sure things are happening the way one
wants, yes. Note however that in the case of translators even the output on
stderr is buffered, so you need to flush it with fflush(stderr). Even
safer is to use snprintf + mach_print().

> but that does not seem to work,

More precisely?
I'll assume "does not show up".

If your print doesn't show up, try to put a print in other places which
are definitely to be called such as in diskfs_user_read_node(). If those
come up, then it means the code you put your prints is not even called,
so put prints in code you thought was calling it etc. up to the RPC that
you thought would be called, then jump to libc which was supposed to be
making the RPC call, etc.

Samuel


  reply	other threads:[~2020-05-12 14:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-12 14:12 [PATCH] ext2fs: Update to upstream Hurd-reserved xattr index for "gnu.*" Jan Nieuwenhuizen
2020-05-12 14:28 ` Samuel Thibault [this message]
2020-05-13 12:04   ` Jan Nieuwenhuizen
2020-05-13 22:52     ` Samuel Thibault

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=20200512142819.fzpeco3kk4ufqnlw@function \
    --to=samuel.thibault@gnu.org \
    --cc=bug-hurd@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=janneke@gnu.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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.