Skip to content
Snippets Groups Projects
  1. Mar 28, 2012
  2. Mar 23, 2012
  3. Mar 22, 2012
  4. Mar 21, 2012
  5. Mar 20, 2012
    • Michael Hanselmann's avatar
      Stop acquiring BGL for LUXI queries · 0fa753ba
      Michael Hanselmann authored
      
      Short description: This fixes an issue whereby masterd would become
      unresponsive on the LUXI socket, leading to client timeouts. While made
      worse in 2.5, the underlying issue was already present in 2.4.
      
      Longer description: Until now all LUXI queries would acquire the BGL
      (big Ganeti lock) in shared mode. With the exception of OpNodeAdd and
      OpNodeRemove, this was also the case for all opcodes before version 2.5.
      In 2.5 we split OpClusterVerify into multiple opcodes, one of which
      (OpClusterVerifyConfig) now acquires the BGL in exclusive mode. Whether
      or not doing so is good is a separate discussion: OpNodeAdd and
      OpNodeRemove, as of this writing, still require an exclusive BGL.
      OpClusterVerifyConfig is run more often than OpNodeAdd or OpNodeRemove
      in normal clusters, which is why we only recognized this issue in 2.5.
      
      What would happen is that once OpClusterVerifyConfig tried to acquire
      its exclusive BGL while it was actually held by other opcodes (e.g.
      OpInstanceReplaceDisks), the locking code would not grant shared
      acquires for the BGL, even when the exclusive acquire is removed from
      the queue for a short amount of time after a timeout. This is necessary
      to prevent lock starvation.
      
      In this situation further LUXI queries requiring the BGL in shared mode,
      e.g. OpClusterQuery, would block and the client eventually time out.
      Over time they fill the client request workerpool's queue and at that
      point even requests not requiring the BGL stop working. Once the
      long-running operation(s) holding the BGL in shared mode finished,
      OpClusterVerifyConfig gets it in exclusive mode and everything returns
      to normal. LUXI recovers very soon too.
      
      I'd like to thank Bernardo Dal Seno for his contribution to this bugfix.
      
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarBernardo Dal Seno <bdalseno@google.com>
      0fa753ba
  6. Mar 19, 2012
  7. Feb 23, 2012
  8. Feb 20, 2012
    • Iustin Pop's avatar
      Fix Makefile.am compatibility with automake 1.11.2 · b8fe7ca6
      Iustin Pop authored
      
      Automake 1.11.2 made the following change:
      
      * Long-standing bugs:
        - Automake now warns about more primary/directory invalid combinations,
          such as "doc_LIBRARIES" or "pkglib_PROGRAMS".
      
      Unfortunately, this breaks our Makefile.am (issue 216) exactly because
      we were relying on pkglib_SCRIPTS.
      
      This patch works around this by adding a new myexeclibdir variable
      (exec so that it is intalled at `install-exec` time, the same as the
      pkglibdir), and switches to that.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      b8fe7ca6
  9. Feb 15, 2012
    • Iustin Pop's avatar
      Reconcile Makefile.am and test data files · 1a1e7ab3
      Iustin Pop authored
      
      Sorry, forgot this in previous commit.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      1a1e7ab3
    • Iustin Pop's avatar
      Workaround changed LVM behaviour · 048eeb2b
      Iustin Pop authored
      
      The vgreduce command has changed behaviour from when we initially
      wrote the code (2.02.02 versus 2.02.66, 4 years delta):
      
      - if there are LVs which will be impacted, it requires --force
      - otherwise refuses to proceed, but it still returns exit code 0
      
      We handle this by looking to see if it returns "Wrote out consistent
      volume group" (behaviour unchanged), or if it complains about
      "--force"; in the case it didn't complete, we retry the operation.
      
      We improve a bit the checking of "vgs", as it uses to fail silently
      and we didn't detect it.
      
      New tests for this function should test, I believe, all the expected
      variations; at the least we now have data files with the expected
      output.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      048eeb2b
  10. Feb 07, 2012
    • Iustin Pop's avatar
      Accept both PUT and POST in noded · 5d0566de
      Iustin Pop authored
      
      This is a partial cherry-pick from
      7530364d on master:
      
      Currently, noded requires PUT, even though the semantics of the RPC
      calls do not match a PUT. We change the code accept both PUT and POST,
      with the intention to remove the PUT support in a later version.
      
      Additionally, we add a message to the HttpBadRequest exception to make
      clear the failure mode (not seeing any error message was what made me
      send this patch…). This was the only description-less use of this
      exception, by the way.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
      (cherry picked from commit 7530364d)
      
      What was not cherry-picked is the rpc change (to switch to PUT). The
      reason I want to backport this to devel-2.5 is that when upgrading to
      2.6, having noded accept both makes for an easier upgrade path.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      5d0566de
  11. Feb 01, 2012
  12. Jan 31, 2012
  13. Jan 26, 2012
  14. Jan 25, 2012
    • Michael Hanselmann's avatar
      Fix cluster verification issues on multi-group clusters · 2c2f257d
      Michael Hanselmann authored
      
      This patch attempts to fix a number of issues with “gnt-cluster verify”
      in presence of multiple node groups and DRBD8 instances split over nodes
      in more than one group.
      
      - Look up instances in a group only by their primary node (otherwise
        split instances would be considered when verifying any of their node's
        groups)
      - When gathering additional nodes for LV checks, just compare instance's
        node's groups with the currently verified group instead of comparing
        against the primary node's group
      - Exclude nodes in other groups when calculating N+1 errors and checking
        logical volumes
      
      Not directly related, but a small error text is also clarified.
      
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      2c2f257d
  15. Jan 20, 2012
  16. Jan 19, 2012
Loading