Skip to content
Snippets Groups Projects
  1. Nov 10, 2015
  2. Oct 16, 2015
  3. Aug 12, 2014
    • Monty Brandenberg's avatar
      Better support for dynamic option changes in llcorehttp. Libcurl has · e79a88c8
      Monty Brandenberg authored
      some problems disabling pipelining on a multi handle with outstanding
      requests so build a more conservative system that allows requests
      to drain before setting curl multi options.  Would rather not have
      this but it is significantly safer.  "HttpPipelining" debug setting
      is now fully dynamic.  Connection limits can also be made dynamic
      in the near future.  Upped the default connection count back to 8 for
      now but will revisit this in the tuning phase.  It might be time to
      combine mesh and textures into a single asset class.  For normal
      server operations that would be a clear path, but for server under
      load, the current scheme may be better.  Minor cleanup in logging
      to elminate some redundant strings.  Might add some more tracing to the
      stall logic 'just in case'.
      e79a88c8
  4. Jul 12, 2013
    • Monty Brandenberg's avatar
      SH-4312 Configuration data between viewer and llcorehttp is clumsy. · eff651cf
      Monty Brandenberg authored
      Much improved.  Unified the global and class options into a single
      option list.  Implemented static and dynamic setting paths as much
      as possible.  Dynamic path does require packet/RPC but otherwise
      there's near unification.  Dynamic modes can't get values back yet
      due to the response/notifier scheme but this doesn't bother me.
      Flatten global and class options into simpler struct-like entities.
      Setter/getter available on these when needed (external APIs) but code
      can otherwise fiddle directly when it knows what to do.  Much duplicated
      options/state removed from HttpPolicy.  Comments cleaned up.  Threads
      better described and consistently mentioned in API docs.  Integration
      test extended for 503 responses with Reply-After headers.
      eff651cf
  5. Mar 29, 2013
  6. Jul 23, 2012
  7. Jul 03, 2012
    • Monty Brandenberg's avatar
      More integration work for texture fetch timeouts. · 2d7b7de2
      Monty Brandenberg authored
      The fetch state machine received a new timeout during the WAIT_HTTP_REQ
      state.  For the integration, rather than jump the state to done, we issue
      a request cancel and let the notification plumbing do the rest without
      any race conditions or special-case logic.
      2d7b7de2
  8. Jun 23, 2012
    • Monty Brandenberg's avatar
      SH-3184/SH-3221 Improve cleanup, destructor, thread termination, etc. logic in library. · e172ec84
      Monty Brandenberg authored
      With this commit, the cleanup paths should be production quality.  Unit tests have been
      expanded to include cases requiring thread termination and cleanup by the worker thread.
      Special operation/request added to support the unit tests.  Thread interface expanded
      to include a very aggressive cancel() method that does not do cleanup but prevents the
      thread from accessing objects that will be destroyed.
      e172ec84
  9. Jun 22, 2012
    • Monty Brandenberg's avatar
      This sets down the groundwork for dynamic policy classes. · bc7d5b24
      Monty Brandenberg authored
      Groundwork is used for the default class which currently represents
      texture fetching.  Class options implemented from API user into
      HttpLibcurl.  Policy layer is going to start doing some traffic
      shaping like work to solve problems with consumer-grade gear.
      Need to have dynamic aspects to policies and that starts now...
      bc7d5b24
  10. Jun 19, 2012
  11. Jun 14, 2012
    • Monty Brandenberg's avatar
      LLMutex recursive lock, global & per-request tracing, simple GET request,... · b08125a5
      Monty Brandenberg authored
      LLMutex recursive lock, global & per-request tracing, simple GET request, LLProxy support, HttpOptions starting to work, HTTP resource waiting fixed.
      Non-LLThread-based threads need to do some registration or LLMutex locks taken out in these
      threads will not work as expected (SH-3154).  We'll get a better solution later, this fixes
      some things for now.  Tracing of operations now supported.  Global and per-request (via
      HttpOptions) tracing levels of [0..3].  The 2 and 3 levels use libcurl's VERBOSE mode
      combined with CURLOPT_DEBUGFUNCTION to stream high levels of detail into the log.  *Very*
      laggy but useful.  Simple GET request supported (no Range: header).  Really just a
      degenrate case of a ranged get but supplied an API anyway.  Global option to use the
      LLProxy interface to setup CURL handles for either socks5 or http proxy usage.  This
      isn't really the most encapsulated way to do this but a better solution will have to
      come later.  The wantHeaders and tracing options are now supported in HttpOptions giving
      per-request controls.  Big refactoring of the HTTP resource waiter in lltexturefetch.
      What I was doing before wasn't correct.  Instead, I'm implementing the resource wait
      after the Semaphore model (though not using system semaphores).  So instead of having
      a sequence like:  SEND_HTTP_REQ -> WAIT_HTTP_RESOURCE -> SEND_HTTP_REQ, we now
      do WAIT_HTTP_RESOURCE -> WAIT_HTTP_RESOURCE2 (actual wait) -> SEND_HTTP_REQ.  Works
      well but the prioritized filling of the corehttp library needs some performance
      work later.
      b08125a5
  12. Jun 12, 2012
    • Monty Brandenberg's avatar
      HTTP Proxy, PUT & POST, unit tests and refactoring. · 7adeb392
      Monty Brandenberg authored
      Implemented/modified PUT & POST to not used chunked encoding for the request.
      Made the unit test much happier and probably a better thing for the pipeline.
      Have a cheesy static & dynamic proxy capability using both local options and
      a way to wire into LLProxy in llmessages.  Not a clean thing but it will get
      the proxy path working with both socks5 & http proxies.  Refactoring to get
      rid of unneeded library handler and unified an HttpStatus return for all
      requests.  Big batch of code removed as a result of that and more is possible
      as well as some syscall avoidance with a bit more work.  Boosted the unit
      tests for simple PUT & POST test which revealed the test harness does *not*
      like chunked encoding so we'll avoid it for now (and don't really need it
      in any of our schemes).
      7adeb392
  13. Jun 11, 2012
  14. Jun 08, 2012
    • Monty Brandenberg's avatar
      Implemented HTTP retry for requests. Went in rather easily which · 28a04400
      Monty Brandenberg authored
      surprised me.  Added a retry queue similar to ready queue to the
      policy object which is sorted by retry time.  Currently do five
      retries (after the initial try) delayed by .25, .5, 1, 2 and 5
      seconds.  Removed the retry logic from the lltexturefetch module.
      Upped the waiting time in the unit test for the retries.  People
      won't like this but tough, need tests.
      28a04400
  15. Jun 06, 2012
    • Monty Brandenberg's avatar
      Policy + caching fixes + https support + POST working · 05af16a2
      Monty Brandenberg authored
      Implemented first global policy definitions to support SSL CA certificate configuration
      to support https: operations.  Fixed HTTP 206 status handling to match what is currently
      being done by grid services and to lay a foundation for fixes that will be a response
      to ER-1824.  More libcurl CURLOPT options set on easy handles to do peer verification
      in the traditional way.  HTTP POST working and now reporting asset metrics back to
      grid for the viewer's asset system.  This uses LLSD so that is also showing as compatible
      with the new library.
      05af16a2
  16. Jun 01, 2012
    • Monty Brandenberg's avatar
      Missed two instances of priority typed as 'float'. Became an · 7b9da4ee
      Monty Brandenberg authored
      excuse to go through an use a typedef for priority and policy class id.
      7b9da4ee
    • Monty Brandenberg's avatar
      Major steps towards implementing the policy component. · b8edacd0
      Monty Brandenberg authored
      Identified and reacted to the priority inversion problem we
      have in texturefetch.  Includes the introduction of a priority_queue
      for the requests that are ready.  Start some parameterization in
      anticipation of having policy_class everywhere.  Removed _assert.h
      which isn't really needed in indra codebase.  Implemented async
      setPriority request (which I hope I can get rid of eventually along
      with all priorities in this library).  Converted to using unsigned
      int for priority rather than float.  Implemented POST and did
      groundwork for PUT.
      b8edacd0
  17. May 23, 2012
    • Monty Brandenberg's avatar
      Integrate llcorehttp library into lltexturefetch design. · 8fc35012
      Monty Brandenberg authored
      This is the first functional viewer pass with the HTTP work of the texture fetch
      code performed by the llcorehttp library.  Not exactly a 'drop-in' replacement
      but a work-alike with some changes (e.g. handler notification in consumer
      thread versus responder notification in worker thread).
      
      This also includes some temporary changes in the priority scheme to prevent
      the kind of priority inversion found in VWR-28996.  Scheme used here does
      provide liveness if not optimal responsiveness or order-of-operation.
      
      The llcorehttp library at this point is far from optimally performing.
      Its worker thread is making relatively poor use of cycles it gets and
      it doesn't idle or sleep intelligently yet.  This early integration step
      helps shake out the interfaces, implementation niceties will be covered
      soon.
      8fc35012
  18. Apr 23, 2012
  19. Oct 13, 2010
  20. Sep 21, 2010
  21. Aug 13, 2010
  22. Mar 29, 2010
  23. Mar 02, 2010
  24. Feb 12, 2010
  25. Jun 21, 2009
  26. May 08, 2009
  27. Jan 07, 2009
  28. Oct 04, 2007
  29. Aug 21, 2007
  30. Jan 02, 2007
Loading