commit-hurd
[Top][All Lists]
Advanced

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

[SCM] Hurd branch, master, updated. v0.5-106-g8e1b6ab


From: Justus Winter
Subject: [SCM] Hurd branch, master, updated. v0.5-106-g8e1b6ab
Date: Wed, 11 Dec 2013 09:02:05 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".

The branch, master has been updated
       via  8e1b6ab073a890cc2da6965f9a57bfc91d8c6d38 (commit)
       via  0209a2f92b5693c72975572b7438ebc6d9865b6b (commit)
       via  4a6a4664f655e785e234e575f024f4674155e274 (commit)
       via  cb42b5fa92329496f25f9479257bd03aeb346205 (commit)
       via  77ba38a61492799cc3c615f0f622f34fc10de826 (commit)
       via  0bdd1a9d8d3eef8cae027be133ee11fc9a3b5165 (commit)
       via  83dfdd298d14d885b9ebc37b3b1af703cdd27f8c (commit)
       via  2640c8a8e32c2f20023e4cb91f87684c62316f19 (commit)
       via  7d20408ec4a5dbc973520dd78dd2531c6a1471c7 (commit)
       via  61c77d679840e4c4455615295ac30215bb01cdf5 (commit)
       via  b770147356376ddb0602358a0252c4f68a9c80c6 (commit)
       via  54ee5b628f8d4a1447670f65cc441fc32a9e96ef (commit)
       via  672005782e57e049c7c8f4d6d0b2a80c0df512b4 (commit)
       via  3688ec3ef963c8e41f845c1d98205ca69f91576b (commit)
       via  2ce5406504540399ed78306198802fc4e1824de7 (commit)
       via  cf1cc29af12447c347a5574b4dc1568c7db61c0b (commit)
       via  64b5a0f4dde23ee9b809b909bccd4ee8637364e9 (commit)
       via  a0a49e530b269679695daa6014bfade0b36970e1 (commit)
      from  6204a717fc63891839faefda75e95a364ec0434e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8e1b6ab073a890cc2da6965f9a57bfc91d8c6d38
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 17:43:06 2013 +0100

    trans/fakeroot: remove dead code
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Remove dead code.

commit 0209a2f92b5693c72975572b7438ebc6d9865b6b
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 17:03:25 2013 +0100

    trans/fakeroot: remove dead code
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Remove dead code.

commit 4a6a4664f655e785e234e575f024f4674155e274
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 17:01:02 2013 +0100

    trans/fakeroot: drop else
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Drop else.

commit cb42b5fa92329496f25f9479257bd03aeb346205
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 16:55:48 2013 +0100

    trans/fakeroot: fix ownership of newly created files
    
    Previously, files created in the fakeroot environment were created
    with the uid and gid of the user running fakeroot:
    
    % fakeroot-hurd /bin/sh -c 'touch /tmp/$$; stat --format=%u:%g /tmp/$$'
    1000:1000
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Fix ownership of newly
    created files.

commit 77ba38a61492799cc3c615f0f622f34fc10de826
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 15:31:36 2013 +0100

    utils/settrans: fix the teardown of chrooted environments
    
    Previously, settrans --chroot would just exec the target.  Create a
    new process for that purpose.  Wait for its completion, then ask the
    translator (nicely by default) to go away.  If it refuses with EBUSY,
    it might be because some process has daemonized inside the chrooted
    environment.
    
    This fixes the following bug when settrans is used with fakeroot:
    
    % fakeroot-hurd /bin/true 2>&1 | tee
    <hangs>
    
    Here, fakeroot-hurd execs settrans with --chroot, settrans execs
    /hurd/fakeauth which will eventually exec the target /bin/true.  When
    true terminates, it will close its stdout and stderr.  But
    /hurd/fakeroot's stderr is also connected to tee's stdin, preventing
    tee from exiting.
    
    * utils/settrans.c (main): Fix the teardown of chrooted environments.

commit 0bdd1a9d8d3eef8cae027be133ee11fc9a3b5165
Author: Justus Winter <address@hidden>
Date:   Sat Dec 7 16:06:41 2013 +0100

    console-client: remove spurious pthread_spin_unlocks
    
    * console-client/trans.c (netfs_attempt_mkfile): Remove spurious
      pthread_spin_unlock.
    (netfs_node_norefs): Likewise.

commit 83dfdd298d14d885b9ebc37b3b1af703cdd27f8c
Author: Justus Winter <address@hidden>
Date:   Sat Dec 7 15:50:46 2013 +0100

    trans: unlock nodes with faked attributes in fakeroot
    
    When a node has faked attributes, we cannot drop our node.
    Reinitialize the lock box as if the node was dropped.  This fixes the
    following bug:
    
    % fakeroot-hurd /bin/sh -c 'touch /tmp/$$.lock
                                chown 0 /tmp/$$.lock
                                l(){ flock /tmp/$$.lock true; }; l; l'
    <hangs>
    
    * trans/fakeroot.c (fake_node_dropweak): Unlock the node if the last
      real reference is dropped but we keep a fake one.

commit 2640c8a8e32c2f20023e4cb91f87684c62316f19
Author: Justus Winter <address@hidden>
Date:   Fri Dec 6 00:04:39 2013 +0100

    trans: improve the error handling in fakeauth
    
    Previously the node was not correctly torn down if adding the newly
    created netnode to the hash table failed.  Fix this by rearranging the
    code, doing the hash table modification first because it is easier to
    undo.
    
    * trans/fakeroot.c (new_node): Fix the error handling.

commit 7d20408ec4a5dbc973520dd78dd2531c6a1471c7
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 23:38:53 2013 +0100

    trans: fix reference counting bug in fakeroot
    
    The function new_node creates virtual nodes using netfs_make_node.
    Nodes created with netfs_make_node already have a reference count of
    one.  Currently another reference is added in new_node.  This prevents
    the destruction of the node causing bugs like this:
    
    % fakeroot-hurd sh -c 'l(){ flock /tmp/$$.lock true; }; l; l'
    <hangs>
    
    * trans/fakeroot.c (new_node): Fix reference count of newly created
      nodes.

commit 61c77d679840e4c4455615295ac30215bb01cdf5
Author: Justus Winter <address@hidden>
Date:   Mon Dec 9 14:33:17 2013 +0100

    trans: fix locking in fakeroot's netfs_S_dir_lookup
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Fix locking.

commit b770147356376ddb0602358a0252c4f68a9c80c6
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 19:40:31 2013 +0100

    trans: fix reference counting and destruction of fake nodes
    
    Previously, fakeroot tried to do too much in netfs_node_norefs.  This
    function is meant to deallocate nodes.  Fakeroot however also tries to
    remove the node from the hash table and to prolong the lifetime of the
    node object by re-referencing it.
    
    Removing the object from the hash table is highly problematic, because
    at this point we already have the node locked.  With proper locking in
    netfs_S_dir_lookup, acquiring the hash table lock while we hold the
    node locked results in dead-locks, releasing the node lock before
    acquiring the hash table lock results in a race condition.
    
    Prolonging the lifetime of the node by re-acquiring a reference is
    clearly a hack that surprisingly works to some degree.  The nodes
    transbox, however, is already gone at this point.
    
    This code was never actually run because of a reference-counting bug
    in fakeroot.
    
    Fix this by installing our own clean routine in the
    netfs_protid_class.  This function is called without the associated
    node being locked, allowing us to acquire the locks in the proper
    order and to keep the hash table locked while the node is being
    destroyed.
    
    * trans/fakeroot.c (netfs_node_norefs): Just free the associated
    resources.
    (fakeroot_netfs_release_protid): New function doing cleanly what
    netfs_node_norefs did before.
    (netfs_S_dir_lookup): Reuse the fake reference.
    (main): Install fakeroot_netfs_release_protid as clean routine.
    
    fixup_fix_refc_destruction

commit 54ee5b628f8d4a1447670f65cc441fc32a9e96ef
Author: Justus Winter <address@hidden>
Date:   Sun Dec 8 18:05:06 2013 +0100

    trans: return nodes locked when creating fake nodes in fakeroot
    
    * trans/fakeroot.c (new_node): Acquire the nodes lock before releasing
      the idport_ihash_lock.  Return nodes locked.
    (netfs_S_dir_lookup): Drop lock.
    (netfs_attempt_mkfile): Likewise.
    (main): Likewise.

commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4
Author: Justus Winter <address@hidden>
Date:   Sun Dec 8 17:55:14 2013 +0100

    trans: fix locking issue in fakeroot
    
    * trans/fakeroot.c (netfs_attempt_mkfile): Keep dir locked until the
      new node is created.

commit 3688ec3ef963c8e41f845c1d98205ca69f91576b
Author: Justus Winter <address@hidden>
Date:   Sun Dec 8 18:28:01 2013 +0100

    trans: handle invalid responses to dir_lookup requests in fakeroot
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Handle invalid responses to
      dir_lookup requests.

commit 2ce5406504540399ed78306198802fc4e1824de7
Author: Justus Winter <address@hidden>
Date:   Sat Dec 7 15:57:17 2013 +0100

    trans: improve the performance of dir_lookup in fakeroot
    
    Previously any FS_RETRY_NORMAL requests were handed back to the
    client.  Redo the lookup ourself instead.  This saves us the burden to
    create a fake node for the intermediate step, hand it back to the
    client and handle another request from the client.
    
    With this change there is no need to fiddle with the permission bits
    as it was previously done.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Redo the lookup transparently
      for the user if FS_RETRY_NORMAL is requested.
    
    fixup_improve_perf

commit cf1cc29af12447c347a5574b4dc1568c7db61c0b
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 19:22:03 2013 +0100

    trans: fix the use of the hash table in fakeroot.c
    
    Previously a pointer to the node was stored in the hash table. This
    writes the locp pointer into the node object overwriting the next
    pointer there. Store the pointer to the netnode instead.
    
    * trans/fakeroot.c (struct netnode): Add field np.
    (new_node): Initialize field np.
    (new_node): Store nn instead of np into the hash table.
    (netfs_S_dir_lookup): Adjust accordingly.

commit 64b5a0f4dde23ee9b809b909bccd4ee8637364e9
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 17:34:48 2013 +0100

    libihash: remove dead code
    
    * libihash/ihash.c (hurd_ihash_add): Remove dead code.

commit a0a49e530b269679695daa6014bfade0b36970e1
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 17:14:49 2013 +0100

    libfshelp: use a hash table in get-identity.c
    
    Currently fshelp_get_identity uses ports_class_iterate to de-duplicate
    the identity ports. Use a hash table instead.
    
    * libfshelp/get-identity.c (struct idspec): Remove field fileno.
    (struct idspec): Add field id_hashloc.
    (id_clean): New function.
    (id_initialize): Use id_clean as cleanup function for idclass.
    (fshelp_get_identity): Use a hash table to de-duplicate the identity
    ports.

-----------------------------------------------------------------------

Summary of changes:
 console-client/trans.c   |    2 -
 libfshelp/get-identity.c |   66 ++++++++-------
 libihash/ihash.c         |    3 -
 trans/fakeroot.c         |  213 +++++++++++++++++++++++++++++-----------------
 utils/settrans.c         |   69 ++++++++++------
 5 files changed, 214 insertions(+), 139 deletions(-)


hooks/post-receive
-- 
Hurd



reply via email to

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