Skip to content
Snippets Groups Projects
  1. Mar 19, 2013
  2. Mar 14, 2013
  3. Mar 12, 2013
  4. Mar 08, 2013
    • Konstantin Osipov's avatar
      Cover up some mail.ru porn in RPM scripts. · 5f7f9c65
      Konstantin Osipov authored
      When server wrapper script failed to start
      the server, it used to try to send a email
      to somebody about this. This has never been
      tested, nor used.
      
      At least make sure it works when it does try
      to do it.
      5f7f9c65
  5. Mar 07, 2013
    • Konstantin Osipov's avatar
      Give CPACK a pre-edited spec file. · f920175c
      Konstantin Osipov authored
      twistd by default starts with umask 077.
      This is why buildbot has umask setting.
      
      rpm by default takes file and directory umask
      from the build directory.
      
      When building tarantool rpm under buildbot,
      twistd default umask was inherited. Thus
      all paths were created in rwx-- mode.
      
      Now add to this cmake bug CMake bug 0012864.
      That is, by default, cmake cpack generator
      adds %dir directive for every intermediate
      dir into the spec.
      
      E.g. if there is a destination file /etc/rc.d/foo,
      the spec gets
      %dir /etc
      %dir /etc/rc.d
      
      Together with the default dir access mask of
      twistd this nicely messed up our rpm install: an
      install of Tarantool 1.4.8-59 rpm for CentOS would change
      /etc and /usr access mode to 700.
      
      Two things are done about that: Tarantool no longer
      uses a cpack generated cpeck file. Extraneous %dir
      directives are removed from the spec file. This
      should minimize the damage of a broken twistd config,
      should it happen again.
      
      All buildslaves are reconfigured and restarted with umask 022.
      f920175c
  6. Mar 06, 2013
  7. Feb 27, 2013
  8. Feb 26, 2013
  9. Feb 25, 2013
  10. Feb 22, 2013
  11. Feb 21, 2013
  12. Feb 20, 2013
  13. Feb 18, 2013
  14. Feb 14, 2013
  15. Feb 12, 2013
  16. Feb 11, 2013
  17. Feb 09, 2013
    • Konstantin Osipov's avatar
    • Konstantin Osipov's avatar
      Fix two bugs in the new async I/O. · fafa3465
      Konstantin Osipov authored
      There were two cases when the new async I/O worked incorrectly.
      The problems only revealed themselves under specific
      concurrency circumstances.
      
      In one case, the client would get a mix of pieces of different
      packets (responses).
      
      The reason for this was that, when selecting which output buffer
      to write to the client, the flushing algorithm used to select
      whichever of two buffers, associated with a session, had data to
      flush.
      This worked OK as long as the entire contents of the buffer could
      be written in one writev() call. But when writev() would only be
      able to write a part of the buffer, the next writev() could
      already be done with another buffer, thus producing a mix of
      *partial* writes from both buffers.
      
      Between two buffers used for a session, one is always newer than
      the other (contains responses to requests which came in earlier).
      So basically the bug was that we would select a newer
      buffer for flushing, while there were still unhandled requests
      in the older buffer.
      
      One approach to a fix would be to, once started, keep writing
      the newer buffer until there is nothing to write in it.
      
      The actual fix chooses a simpler approach: to never begin
      with a newer buffer, until the older one is completely written.
      Thus, there is never reordering of output between two
      output buffers, only within a single buffer.
      
      The second bug was caused by wrong calculation of write offset
      for iproto header. When iproto_header would fall on the
      border of two iov vectors, obuf_book would rightfully
      discard the tail of the first iov vector, and "position"
      the header at the beginning of the second vector.
      However, the savepoint used to memcpy() the output would
      still point at the first vector, and the header would be
      (partially) written at the end of the first vector,
      not at the beginning of of the second.
      This led to a) write beyond allocated memory b) loss
      of a piece of a packet (effect seen by the client).
      
      The fix is to correctly record the write position when
      making a booking. obuf_book signature is changed
      respectively.
      
      No test cases since the bug is only spottable under certain
      concurrency circumstances (a single CPU box, client/server I/O).
      @todo: add unit tests.
      fafa3465
  18. Feb 08, 2013
  19. Jan 17, 2013
  20. Jan 11, 2013
  21. Jan 09, 2013
    • Konstantin Osipov's avatar
      Implement box.session, on_connect and on_disconnect triggers. · db6d2c84
      Konstantin Osipov authored
      Since connect/disconnect events in iproto run outside
      fiber context, queue execution of on_connect/on_disconnect
      triggers through the request queue. Generalize the request
      queue for that purpose.
      
      Implement a framework for on_connect/on_disconnect triggers
      and Lua bindings for it.
      
      Add tests and docs.
      db6d2c84
  22. Jan 02, 2013
  23. Dec 24, 2012
    • Konstantin Osipov's avatar
      Cleanup, refactoring. · 3ccd6446
      Konstantin Osipov authored
      Move Box API declarations to box.h.
      Make box.h a public header.
      Add comments to box functions.
      Rename fuctions accordingly.
      Make includes for connector/c more local.
      3ccd6446
  24. Dec 20, 2012
Loading