Permalink
Commits on Jun 13, 2018
  1. depot: update recipe hashes

    chelmuth committed Jun 13, 2018
  2. sculpt: prepare TC release

    chelmuth committed Jun 13, 2018
    - version is 18.06
    - update download_debian and qt5_textedit
  3. fs_rom: read dataspace during session request

    ehmry authored and chelmuth committed Jun 12, 2018
    Fix #2863
  4. init: avoid too eager child restart

    nfeske authored and chelmuth committed Jun 12, 2018
    This patch weakens the aggressive restart of a child with incomplete
    environment sessions. The restart check is performed each time
    the init configuration changes. In sculpt, this is not a rare special
    case anymore but a frequent case when using the depot_rom as provider
    for environment ROM sessions. In particular when starting a chain of
    inter-depending children, the sculpt-manager quickly generates a
    sequence of configurations with successively added start nodes.
  5. init: don't report abandoned children

    nfeske authored and chelmuth committed Jun 12, 2018
    This is a fixup of "base: fix destruction of async env sessions".
  6. base: reset unfinished xml nodes in xml_generator

    alex-ab authored and chelmuth committed Jun 12, 2018
    Fixes #2855
Commits on Jun 12, 2018
  1. init test: reduce RAM demand of app/dummy

    nfeske authored and chelmuth committed Jun 12, 2018
    The addition of the 'Cap_consumer' feature to app/dummy increased the
    static RAM demand of the component to a point where 1 MiB no longer
    suffices on sel4 (on this kernel, the base library uses a larger amount
    of statically allocated data compared to the others). The tweaks enable
    init.run and init_loop.run to work on sel4 on x86-64.
  2. usb_block_drv: don't select alternate interface setting

    cproc authored and chelmuth committed Jun 11, 2018
    Selecting an alternate interface setting, even if it is the same as the
    current one, apparently makes the INQUIRY command fail with USB devices
    like 'SanDisk Ultra Fit' (0781:5583) and 'Corsair Flash Voyager'
    (1b1c:1a03) when the USB block driver is restarted.
    
    Fixes #2860
  3. sculpt.run: add kernel log message

    alex-ab authored and chelmuth committed Jan 18, 2018
  4. fs_rom: workaround for possible livelock

    nfeske authored and chelmuth committed Jun 11, 2018
    Thanks to Alexander Boettcher for investigating!
  5. nic_router: fix uncaught interface RAM exhaustion

    m-stein authored and chelmuth committed Jun 8, 2018
    * Catch Quota_guard exceptions wherever we do 'new (_alloc)' in Interface
      and in case drop the packet that caused the exception
    * Modify Interface::handle_config_2 to not use the guarded allocator of the
      NIC session quota as we cannot handle a RAM exhaustion well at this point
      in time. Instead use a Constructible member in Interface so that a needed
      RAM adds up to the calculation in the create_session implementation where
      an exhaustion is handled via a service denial.
    
    Issue #2857
  6. nic_router: fix pure virtual call in ~Interface()

    m-stein authored and chelmuth committed Jun 7, 2018
    The interface destructor called pure virtual methods at least when
    cancelling ARP- waiting states. The implementations were made by the
    deriving classes Session_component respectively Uplink. This led to an
    abort of the NIC router as the destruction of the derived class was
    already done. A similar problem already occured in the past during the
    construction of Interface and was back then solved by introducing a
    separate init() method. This commit, however, solved the problem by
    making Interface a member of the other classes. Therefore, the init()
    method could be removed again. Furthermore, the interface polica could be
    moved from Session_component_base to Session_component. The commit also
    had to generalize the way the link state of an interface is determined.
    
    Fixes #2856
  7. sculpt: increase RAM quota of USB block driver

    nfeske authored and chelmuth committed Jun 8, 2018
    Thanks Sebatian Sumpf for testing!
  8. sculpt: manage leitzentrale window layout

    nfeske authored and chelmuth committed May 27, 2018
    With this patch, the sculpt manager takes over the role the window
    layouter of the leitzentrale, which eliminates the need to manually
    position and size the inspect window.
  9. init: defer immediate restart of abandoned child

    nfeske authored and chelmuth committed Jun 7, 2018
    While a child is abandoned, we must limit the start of anothers with
    the same name. Otherwise - of the child has startup problems - a number
    of abandoned children with the same name may queue up. This becomes a
    problem whenever the child destruction depends on an asynchronous
    service that provides an env session for the children. If the service is
    unable to keep up with the session requests (both create and close),
    the queue of abandoned children becomes unbounded. Limiting the child
    creation rate to one abandoned child per name mitigates this problem.
  10. init: update state report on new/killed children

    nfeske authored and chelmuth committed Jun 7, 2018
    This patch reduces the latency of state reports when children are
    removed or added, thereby, accellerating the feedback loop between a
    management component and init during the staged startup or removal of
    inter-dependent components.
  11. base: fix quota transfer to async env services

    nfeske authored and chelmuth committed Jun 7, 2018
    Whenever an environment session was provided by an asynchronous service,
    e.g., the depot_rom of the sculpt scenario, the session quota was not
    transferred to the server at session-creation time. This resulted in a
    slow depletion of the server's quota over time. This patch ensures that
    the delivery of session quota is consistent with the information
    reported to the server as session argument.
  12. base: fix quota reversing when clients vanish

    nfeske authored and chelmuth committed Jun 7, 2018
    The 'Child::_revert_quota_and_destroy' assumes to be called from the
    client's context, which is normally the case when destroying sessions.
    However, if a client's session outlives the client (because the
    asynchronous close request to the server is still pending), the session
    cleanup is performed in the context of the server. Here, the
    'session_response' implementation wrongly called
    '_revert_quota_and_destroy' to the effect that the session quota was
    withdrawn from the server (good) but subsequently transferred back to
    the server (bad). The patch replaces the call of
    '_revert_quota_and_destroy' with only the first - correct - part of the
    transaction.
  13. os: add init_loop test

    nfeske authored and chelmuth committed Jun 7, 2018
    This test monitors the RAM quota of a dynamic init and a server hosted
    within the dynamic init in the presence of a repeatedly created and
    destructed client.
  14. vfs/lxip: make gateway config attribute optional

    chelmuth committed Jun 7, 2018
    This enables the application in router/gateway-less network
    configurations, e.g., test environments.
  15. Increase RAM quota of depot download manager

    chelmuth committed Jun 7, 2018
    Also increase run-script test timeout for qemu/sel4.
  16. run: disable heuristics for apple gpt in parted

    chelmuth committed Jun 7, 2018
    Newer revisions of parted require special privileges due to use of the
    dmidecode tool, which logs permission errors to standard error. In these
    cases parted still succeeds with its operation, so just ignore the
    jabbering and prevent expect to exit.
  17. nic_router: fix domain invalidation during init

    m-stein authored and chelmuth committed Jun 1, 2018
    Previously we were doing the initialization once over all domains,
    remembered which of them became invalid and destroyed those afterwards.
    This isn't sufficient. As soon as one domain becomes invalid we have to
    dissolve/destroy this one, deinitialize all other domains again (as they
    could contain references to the invalid domain) and retry to initialize
    them from the beginning. We proceed with this until we have one run
    without a domain becoming invalid. Then we can be sure that the last
    initialization run did not create references to any invalid domain.
    
    Issue #2840
  18. nic_router: invalidate domains with same name

    m-stein authored and chelmuth committed Jun 1, 2018
    If two domains have the same name, invalidate (dissolve, destroy) them both.
    
    Issue #2840
  19. nic_router: generic Avl_string_tree

    m-stein authored and chelmuth committed Jun 1, 2018
    The generic helper Avl_string_tree of the NIC router is currently only
    used for finding domains via their names, but in the future it can be
    used for finding uplinks by their labels also. Additionally, it enables
    us to throw an exception when inserting two elements with the same
    identifier.
    
    Issue #2840
  20. grub2: avoid switching modes

    alex-ab authored and chelmuth committed Jun 6, 2018
    to reduce flickering during boot
    
    Issue #2778
  21. sculpt: sanitize deployment, diagnostic feedback

    nfeske authored and chelmuth committed Jun 6, 2018
    This patch suppresses the start of components that cannot run because
    obvious runtime dependencies (used servers) are missing in the runtime.
    In this situation, the sculpt manager gives diagnostic feedback to the
    user in the runtime dialog.
  22. nic_router: simplify routing rule classes

    m-stein authored and chelmuth committed May 26, 2018
    * Get rid of the base classes Rule and Leaf_rule,
    * Make log output about initiated or invalid routing rules conform to the rest
      of the router log, and
    * Ensure that each type of routing rule when being invalid invalidates its
      whole domain.
    
    Issue #2840
  23. ping.run: mark as "not supported" on Linux & FOC

    m-stein authored and chelmuth committed May 30, 2018
    On Linux, we have a tap device as NIC back end but there is no one to
    ping to in the subnet of the tap device. On FOC, the tests seem to trigger
    a bug in the destruction of components with parent.exit(X); .
    
    Fixes #2848
  24. sculpt: more robust discovery intervention

    nfeske authored and chelmuth committed Jun 6, 2018
    Sculpt's discovery of the default storage target can be intercepted by
    user input (i.e., pointer movements) at boot time. The patch makes this
    intervention mechanism robust for the case where nitpicker's first hover
    report arrives after all storage devices were already scanned.