commit-hurd
[Top][All Lists]
Advanced

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

[SCM] the great next stuff branch, nsmux, created. dea12e2529ecdcab3a382


From: Thomas Schwinge
Subject: [SCM] the great next stuff branch, nsmux, created. dea12e2529ecdcab3a382fc71e7430326b74d6a6
Date: Tue, 06 Oct 2009 09:45:56 +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 "the great next stuff".

The branch, nsmux has been created
        at  dea12e2529ecdcab3a382fc71e7430326b74d6a6 (commit)

- Log -----------------------------------------------------------------
commit dea12e2529ecdcab3a382fc71e7430326b74d6a6
Author: Sergiu Ivanov <address@hidden>
Date:   Tue Apr 14 22:28:27 2009 +0300

    Made nsmux wait until dynamic translators finish
    
    Previously, a settrans -gR on a node on which nsmux resides
    would only kill the dynamic translators, without shutting
    down nsmux, because it didn't wait for the children to close
    their ports, which made a check in netfs_shutdown fail. Now
    nsmux waits for the dynamic translator to finish, so
    settrans -gR does its job as expected: shuts down everything.

commit c9110f9c7d71fa9b157540a7aa2ade7f34b79968
Author: Sergiu Ivanov <address@hidden>
Date:   Mon Apr 13 01:03:40 2009 +0300

    nsmux can shutdown all dynamic translators on exit
    
    Now nsmux can shutdown all of its dynamic translators on exit, thus
    doing sufficient cleanup. One can tell nsmux to shutdown dynamic
    translators using the ``--recursive'' option to settrans. Note that
    because fsys_goaway returns immediately as the RPC is processed, while
    the receiver may still remain in memory, doing something like
    
      settrans -g --recursive foo
    
    where nsmux is sitting on foo will almost always result in a ``Server
    busy'' error message. The reason is that libnetfs counts how many open
    ports to its nodes there are at shutdown and in most cases it does the
    check *before* the dynamic translators manage to drop their
    references. Therefore, the aforementioned command gracefully kills all
    dynamic translators. Invoked the second time, this command will
    shutdown nsmux, too. Immediate shutdown with killing dynamic
    translators can be achieved via
    
      settrans -gf --recursive foo

commit 0a5fcd403943fbbdc0a2ba35283f1135f97c48dc
Author: Sergiu Ivanov <address@hidden>
Date:   Sun Apr 12 22:31:26 2009 +0300

    Added dynamic translator tracking facilities
    
    nsmux cannot presently shut down gracefully (without the -f option)
    after having done a magic lookup, because the dynamic translators it
    starts hold ports (references) to its nodes and make the standard
    fsys_goaway handler return with EBUSY. To solve the problem, nsmux
    will need to keep track of dynamic translators and shut them down
    explicitly, not relying on standard mechanisms, which don't know that
    the translators might be stacked and might try stopping a translator
    in the middle of the dynamic stack, which will certainly result in
    EBUSY.
    
    (Note that this commit comes on top of an erroneous one and is meant
    to fix it. I could not revert the previous commit because of ``bad
    index'', so I hope this commit will solve the problem...)

commit 68c018b02a8eff826cd30480ce73202ce9cc9e48
Author: Sergiu Ivanov <address@hidden>
Date:   Sun Apr 12 22:13:36 2009 +0300

    Revert "Added dynamic translator tracking facilities"
    
    This reverts commit 0ec50f8fb5ec477523571a9612cfb9f23a10de12.

commit 0ec50f8fb5ec477523571a9612cfb9f23a10de12
Author: Sergiu Ivanov <address@hidden>
Date:   Sun Apr 12 21:48:11 2009 +0300

    Added dynamic translator tracking facilities
    
    nsmux cannot presently shut down gracefully (without the -f option)
    after having done a magic lookup, because the dynamic translators it
    starts hold ports (references) to its nodes and make the standard
    fsys_goaway handler return with EBUSY. To solve the problem, nsmux
    will need to keep track of dynamic translators and shut them down
    explicitly, not relying on standard mechanisms, which don't know that
    the translators might be stacked and might try stopping a translator
    in the middle of the dynamic stack, which will certainly result in
    EBUSY.
    
    # Please enter the commit message for your changes.
    # (Comment lines starting with '#' will not be included)
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #   modified:   debug.h
    #   modified:   lib.c
    #   modified:   lib.h
    #   modified:   lnode.c
    #   modified:   lnode.h
    #   modified:   magic.c
    #   modified:   magic.h
    #   modified:   ncache.c
    #   modified:   ncache.h
    #   modified:   node.c
    #   modified:   node.h
    #   modified:   nsmux.c
    #   modified:   nsmux.h
    #   modified:   options.c
    #   modified:   options.h
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #   my_S_dir_lookup.c
    #   sav/
    #   update

commit 6cbf37e304b352d3acfd6d719ddfa7a7fbbc3bbb
Author: Sergiu Ivanov <address@hidden>
Date:   Thu Apr 9 09:03:51 2009 +0300

    Updated copyright years
    
    The copyright years were listed only up to 2008, so I added
    2009. Also, some of the files I created from scratch used to
    list copyright years starting with 2001, which was wrong.
    This has also been corrected.

commit 1e8766f3649e8a97595fad2a8ca550028e5e3f4a
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Mar 20 21:59:05 2009 +0200

    Shadow and proxy nodes are connected in a chain
    
    nsmux will eventually need to be able to traverse dynamic
    translator stacks, so it will have to know which node lies under
    a certain node (shadow or proxy). To be able to do this, nsmux
    now maintains the service nodes in a dynamic translator stack
    in a one-directional linked list.

commit 48efa86dfe3e546190f997e70c307a231026d207
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Mar 6 21:21:47 2009 +0200

    Added node types
    
    Now inside each netnode (and, hence, inside each node) there is
    a field showing the type of the node. This is required because,
    at least in response to requests by the filter, proxy nodes and
    shadow nodes will have different jobs to do and the server-side
    implementation of filesystem RPCs in nsmux would need to know
    what actions they are expected to carry out.

commit 3cea8614816e68db569bbea21134c64273e037b5
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Mar 6 20:31:04 2009 +0200

    Added proxy nodes in the dynamic translator stack
    
    When setting dynamic translators, nsmux used to offer the client
    a port to the dynamic translator directly. Now it gives off a
    proxy node, which contains a port to the translator. Also, proxy
    nodes are now included in dynamic translator stacks. Dynamic
    translator stacks now consist of the following interconnected
    conceptual blocks:
    
      -- shadow node -- translator -- proxy node --

commit 2fc7f8c49fc34cd2db65c36400200082a62138a1
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Feb 20 18:43:57 2009 +0200

    Dynamic translator stacks are set in series of retries
    
    When a client wants nsmux to set several translators on a node
    using a syntax like ``file,,x,,y'', nsmux sets the first
    translator on a shadow node mirroring ``file'' and punts a
    retry to the client. The client (commonly) does the retry and
    thus control comes back to nsmux, which creates another shadow
    node and sets the second translator on this node.
    
    At the moment translator stacks do not include proxy nodes, i.e.
    the structure of a dynamic translator stack is:
    
    ...---dynamic translator -- shadow node -- dynamic translator ---...

commit 0a878aaf9fadb891a6067f8f084baa8ca5c30521
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Jan 30 10:27:58 2009 +0200

    Adapted node_set_translator to setting translators on shadow nodes
    
    Usually the file of which the supplied node is a mirror is
    looked up by node_set_translator, so that it can open using
    the flag combination required by the translator being started.
    However, when dealing with a dynamic translator being set upon
    another dynamic translator, node_set_translator must not do any
    lookups, because a valid port is already stored in the supplied
    node.

commit eeba2e52b08c78f2ba362174c8bfc8d222133b45
Author: Sergiu Ivanov <address@hidden>
Date:   Thu Jan 29 22:53:57 2009 +0200

    Made nsmux able to pass retries to the client
    
    Now, when nsmux sets another dynamic translator, it sends a
    retry to the client, so that it could set the (possible) next
    dynamic translator in the next execution of netfs_S_dir_lookup,
    which will occur due to the retry. However, nsmux cannot handle
    the retry properly yet.
    
    The reason for splitting the functionality of *only* passing the
    retry to client in a separate commit is that it required some
    tricky code manipulation and hence I feel that keeping it
    in a separate commit is quite reasonable.

commit 966522f2fa9239d9c2ba08152cc7019d996c2516
Author: Sergiu Ivanov <address@hidden>
Date:   Thu Jan 29 17:16:06 2009 +0200

    Added the function to create proxy nodes for ports
    
    Since we want netfs_S_dir_lookup to ask the client to do a
    retry when it sets a new dynamic translator, nsmux has to give
    the client a *proxy* of the port to the root of the current
    dynamic translator, so that the retry gets back in nsmux. For
    this we need to create proxy nodes for ports, which is precisely
    what node_create_from_port does.

commit b7d7c04378644966ae873878b5485fac1a708dc9
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Jan 23 08:06:30 2009 +0200

    nsmux can now correctly start one translator
    
    nsmux can now handle the syntax ``file,,x'' correctly again.
    Translator *stacks* cannot be created yet.

commit 7298936df2535ce119ea38afd81915e523957e00
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Jan 23 07:35:41 2009 +0200

    Adapted node_set_translators to shadow nodes
    
    Now this function is called node_set_translator and sets only
    one translator on the supplied (shadow) node. This function has
    not yet been debugged.

commit 26fc5b0f9071e0b6266c01e3bc46ac102b27efa6
Author: Sergiu Ivanov <address@hidden>
Date:   Thu Jan 22 22:32:08 2009 +0200

    netfs_S_dir_lookup can perform usual lookups
    
    Due to the transition to a different way of building translator
    stacks netfs_S_dir_lookup has been broken and nsmux could not
    respond normally to any lookup requests. Now netfs_S_dir_lookup
    is again capable of doing normal lookups. At the moment nsmux
    is doing nothing but mirror the real filesystem.

commit 65360480a9540e3ed6cfdbc42a3a66c8b08b73dc
Author: Sergiu Ivanov <address@hidden>
Date:   Thu Jan 22 21:16:49 2009 +0200

    Added the routines for parsing magic syntax
    
    Now nsmux has two special routines for parsing the special
    ``,,'' syntax: magic_find_sep and magic_unescape. The reason
    for their separate existence is that the magic ``,,'' is
    allowed to be escaped in the following way ``,,,'' and nsmux
    must be able to react correspondingly to such syntax.

commit 439bd02eb00358b50e2d5123ae27e839d8f1a8a6
Author: Sergiu Ivanov <address@hidden>
Date:   Tue Jan 20 22:08:25 2009 +0200

    Magic syntax handling removed from netfs_attempt_lookup_improved
    
    Up to now it was netfs_attempt_lookup_improved who handled the
    magic syntax for ``,,''. Now the idea is to handle this syntax
    via retries and netfs_attempt_lookup_improved is in no position
    to manage this. In further commits the magic syntax will be
    handled by netfs_S_dir_lookup. Note nsmux does not actually
    work at the moment.

commit b957be8b0ed3c5b38434db606122e2904e121de4
Author: Sergiu Ivanov <address@hidden>
Date:   Sun Jan 18 20:00:08 2009 +0200

    Prepared struct node for stacks of shadow nodes
    
    So far dynamic translator stacks were created in the following
    fashion: nsmux created a shadow node on which the whole
    dynamic translator stack was built. This commit starts the
    transition to a different strategy: the new approach consists
    in setting *each* dynamic translator on its personal shadow
    node. To achieve such functionality the set of fiels of struct
    node was modified and the bits of code that manipulated these
    fields were stripped out. The code is not functional now. The
    coming commits will bring it back to life.

commit fd0bc23b08aa9ff76d61f753149b5e4fbf2c5a30
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Dec 12 21:28:52 2008 +0200

    Ports in shadow nodes are opened by the translator starting routine now.
    
    Before, netfs_S_dir_lookup used to open the ports in shadow,
    nodes. This could cause conflicts with the flags required by
    the translator starting up on the node. Now the port is opened
    only based on the flags requested by the translator being
    launched.

commit a54273639f6afd659c15326cb997922fcecfe89a
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Nov 21 23:54:40 2008 +0200

    Moved the code to GCS
    
    Now the code is (hopefully) compliant with GNU Coding Standards.

commit 59f4d4d2b67028c01f41ea0de0f12934b4fad07b
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Nov 7 22:33:49 2008 +0200

    node_set_translators now sets multiple translators correctly.
    
    node_set_translators used to count the translators in the list
    and set the first one so many times as there were translators.
    This bug is killed now.

commit 2ca81a7c1717477766d7e3882e13f4b414e2fead
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 10 23:10:31 2008 +0300

    Made netfs_S_file_get_translator_cntl use the untranslated version of the 
real node
    
    Now netfs_S_file_get_translator_cntl calls the
    file_get_translator_cntl routine on the untranslated version of
    the real node, which makes it possible for the filter to trace
    the real translator stack.

commit ea0e131a27ca72e15be6af24d283df7406be0b7c
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 10 21:40:15 2008 +0300

    Added the code of always looking up the untranslated real node
    
    netfs_attempt_lookup_improved will now lookup the requested file
    both with the requested flags and in an untranslated fashion.
    This will allow netfs_S_file_get_translator_cntl to correctly
    redirect requests to the real filesystem node.

commit 7ef410a8a63a7e8ff206fe2baeea88a82fac48a3
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 10 21:16:30 2008 +0300

    Added the port to the untranslated version of the real node to the netnode
    
    When 'file,,x' is requested, nsmux cannot tell whether 'x'
    is a filter or not and whether it will require the untranslated
    version of the file or not. However, when
    netfs_S_file_get_translator_cntl would like to show the
    translator stack on the *real* node, it will need the
    untranslated version of the node, which must be available by
    that time. The new field in netnode solves this issue.

commit e266d6a45c1cd1269872528dbe148f88a01ac081
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 10 21:14:25 2008 +0300

    Removed the paragraph about propagating translators into directories from 
README
    
    Earlier the README said that nsmux will propagate translators
    into a directory if it will be set on a directory. However,
    this functionality will be later implemented as a separate
    translator, therefore nsmux shall not care for this task in
    the future.

commit d60dd9120b1a50c92b0aefdc3a76618d74b5e0f1
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 10 21:11:03 2008 +0300

    Added the code for recognizing non-root nodes to 
netfs_S_file_get_translator_cntl
    
    Now netfs_file_get_translator_cntl will recognize whether it
    is called for the root node or not. In case the node it is
    called on is not the root, it will call file_get_translator_cntl
    on the real node, so that filters could trace translator stacks
    on real nodes.

commit b973a117cae3021b87d408af573bb1dbe153c132
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 3 11:03:44 2008 +0300

    Copied the implementation of netfs_S_file_get_translator_cntl from 
libdiskfs.
    
    By default, libnetfs does not implement this callback, which,
    BTW, makes impossible to trace the translator stack consisting
    of libnetfs translators. nsmux not only needs an implementation
    of this routine, but also requires customizations in order for
    filters to trace translator stacks on real nodes.

commit 41e54572aac563537d961b3f284c100411c59532
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 3 11:01:10 2008 +0300

    Revert "Cloned the native implementation of netfs_S_fsys_getroot."
    
    This reverts commit 7200dac108c4a8981b7f7f5f90757409c3e6d5bf.

commit 0d2f7d724254ad78d61b4a2004879b90bf2587d4
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Oct 3 10:59:53 2008 +0300

    Revert "Copied the implementation of netfs_S_file_get_translator_cntl from 
libdiskfs."
    
    This reverts commit e7b2aaa4548c0fa5fb5d6c8586fee63748d16dab.

commit e7b2aaa4548c0fa5fb5d6c8586fee63748d16dab
Author: Sergiu Ivanov <address@hidden>
Date:   Wed Oct 1 21:39:54 2008 +0300

    Copied the implementation of netfs_S_file_get_translator_cntl from 
libdiskfs.
    
    By default, libnetfs does not implement this callback, which,
    BTW, makes impossible to trace the translator stack consisting
    of libnetfs translators. nsmux not only needs an implementation
    of this routine, but also requires customizations in order for
    filters to trace translator stacks on real nodes.

commit 7200dac108c4a8981b7f7f5f90757409c3e6d5bf
Author: Sergiu Ivanov <address@hidden>
Date:   Wed Oct 1 21:08:57 2008 +0300

    Cloned the native implementation of netfs_S_fsys_getroot.
    
    I cloned the native implementation of netfs_S_fsys_getroot,
    since we filter translators run on nsmux nodes to see the
    translator stacks of the real filesystem nodes.

commit 783e451ddefe81ef0c83412569b0a99c415f28d9
Author: Sergiu Ivanov <address@hidden>
Date:   Fri Sep 19 11:30:09 2008 +0300

    Added the mechanism of maintaining shadow nodes alive.
    
    I refactored the node cache in such a way that it now only
    maintains references to nodes (the reason is that only
    directory nodes and shadow nodes are created, therefore the
    existing node cache is very well suited for this purpose).
    It must be remarked that the node cache, borrowed from
    unionfs, has never actually been a *cache*, therefore this
    small change does not alter things badly.
    
    I also removed the command line option --ncache-size.

commit 06c2f31b8e3d8a5818f2bc28b554a8929a1f722f
Author: Sergiu Ivanov <address@hidden>
Date:   Sun Sep 7 22:40:23 2008 +0300

    Made nsmux RW
    
    Now nsmux will handle properly the requests to write into
    proxy nodes, instead of simply returning 0.

commit dd5f567d830707ca1530e8e3c2ef7b1c6b4b3862
Author: Sergiu Ivanov <address@hidden>
Date:   Sun Sep 7 22:36:45 2008 +0300

    Added proxy nodes, optimized node management policy
    
    Now, when 'file,,x' is requested, nsmux will create a proxy
    node and will set the translator 'x' on this node, not on
    the real filesystem node. Also, nsmux will not create nodes
    for simple file looks, instead it will simply return the
    port to the required file, thus avoiding the necessity
    to handle IO operations inside itself.

commit 13fa6563250dcd4b2d1a54f15aba1bb7d8aace28
Author: Sergiu Ivanov <address@hidden>
Date:   Tue Jul 22 18:10:44 2008 +0300

    Added the possibility to propagate translators onto directories. Fixed bugs.
    
    Now the user can enter directories using the following command:
      cd dir,,x
    All files in this directory will then be implicitly translated
    by translator 'x'; in other words, if there is a file 'file' in
    directory 'dir', after executing the command mentioned above,
    and after running
      cat file
    the user will obtain the content of 'file' translated by 'x'.
    
    Also fixed several rather serious bugs in lookup of file names
    of the type 'file,,x'.

commit ef6b6263abd1d58ebefe3c8b751c9148459c9638
Author: Sergiu Ivanov <address@hidden>
Date:   Sat Jul 19 00:41:32 2008 +0300

    Added the code for looking up files with names like 'file,,x'.
    
    The user can now request files with special names like 'file,,x'
    and the proxy will start the translator 'x' on file 'file' and
    return the port to the user. If 'x' is not an absolute path,
    the default prefix '/hurd/' is added to it.

commit c9c70745fbdb4be82796f94e5601109d9071bb46
Author: Sergiu Ivanov <address@hidden>
Date:   Sun Jul 13 20:26:34 2008 +0300

    Copied the skeleton for mirroring a directory from filterfs.
    
    At the moment nsmux is only capable of creating a read-only
    mirror of the given directory.

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


hooks/post-receive
-- 
the great next stuff




reply via email to

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