Skip to content
Snippets Groups Projects
  1. Jul 06, 2011
  2. Jul 05, 2011
  3. Jul 04, 2011
  4. Jul 01, 2011
  5. Jun 30, 2011
  6. Jun 28, 2011
  7. Jun 27, 2011
  8. Jun 24, 2011
    • Konstantin Osipov's avatar
      Remove diagnostics.[hm] now that we've moved to ObjectiveC exceptions · 7bd374f9
      Konstantin Osipov authored
      Remove diagnostics.[hm] since we should use
      Objective C exceptions going forward.
      
      A few more cleanups related to v03/v04 snapshot/wal
      format.
      7bd374f9
    • Konstantin Osipov's avatar
      Cleanup: remove v04 and v04 snapshot/xlog formats. · ee3e24d7
      Konstantin Osipov authored
      Basic cleanup that removew old/unused code.
      ee3e24d7
    • Konstantin Osipov's avatar
      https://blueprints.launchpad.net/tarantool/+spec/client-error · 9b3d0a76
      Konstantin Osipov authored
      Send error messages to the client.
      
      Before this patch, Tarantool would only send an error
      code to the client, but record all the details in its error log.
      
      This patch extends the client/server protocol and adds
      error text to it. This text can now contain not only
      a staple message that corresponds to the error, but
      problem-related additional information, such as namespace id,
      field number, etc.
      
      All errors still can be logged in the error log, but
      not all of them need to be. For errors, which are only
      sent to the client, this patch uses ClientError exception
      class. Errors which also need to be logged in the error log
      must use LoggedError exception class.
      
      To choose between the two, the following rule of thumb is applied:
      - client application errors, which, generally, can be non-errors at all,
        such as access to a non-existing namespace, index or field, or
        access to a locked tuple are not logged
      - execution and protocol errors, such as an error writing to disk,
      an message that doesn't follow the protocol format, is logged.
      
      For the most common error, ER_TUPLE_IS_RO, we do not use
      string template to reduce CPU cycles necessary to produce this error
      (on my machine one can raise ~200 000 exceptions per second, which is not
      too much).
      
      An addition to the above, this patch renames error codes, to
      make them shorter (ERR_CODE_* -> ER_*) and rewrites the iproto.m
      client connection loop to make it a trifle more efficient.
      
      This patch also fixes a couple of bugs:
      - in exception.m, [tnt_Exception alloc]
      when we reused the old exception class, we did
      not reset its 'isa' pointer, which could lead to a crash
      when a message with a different signature was sent to
      it.
      
      - in box_dispatch (renamed from box_dispach),
      when logging for slow commands was done, txn->op could
      already be overwritten by txn_commit()/txn_abort().
      
      A comment on the naming scheme: prefixing every Tarantool
      piece of method/data structure with tnt_ would lead
      to very bloated code. So in this patch
      I decided to reduce the use this
      prefix to the client library code and some very
      generic names only.
      9b3d0a76
    • Konstantin Osipov's avatar
      Test-runner: a number of changes to improve debugging · c992d9d9
      Konstantin Osipov authored
      When stopping the server under gdb, send SIGTERM
      to the server, not to the terminal in which
      gdb is started. This gives you the option
      to actually examine gdb output before the test
      has ended.
      
      When the server crashes, and we're reading
      from it in a client connection, detect EOF
      and abort reading (the old code was buggy
      and would busyloop indefinitely in case of
      a crash).
      
      Remove an unnecessary fork() in
      start().
      c992d9d9
    • Konstantin Osipov's avatar
      Handle more gracefully signals sent by the terminal driver · 42833f73
      Konstantin Osipov authored
      When ctrl-c is pressed on the terminal, a signal (SIGINT)
      is sent to all members of the foreground process group.
      
      Since both wal_writer and logger processes' default action
      on SIGINT is to terminate, they could terminate before parent.
      
      This led to rather nasty results: in the circumstances, when
      the parent somehow ignored SIGINT (e.g. under GDB), or handled
      it after its children (a race condition), children would
      disappear before parent, then parent would detect that
      wal_writer is gone, try to panic/write to the log, which
      is also gone, and on top of SIGINT get a SIGPIPE.
      
      Move spawned children to their own process groups
      to make sure they don't belong to the main process'
      process group, and don't receive signals from the
      controlling tty. It's okay in the interactive mode,
      since these children are going to die anyway when the
      parent dies, after getting a SIGPIPE.
      42833f73
  9. Jun 23, 2011
  10. Jun 21, 2011
  11. Jun 16, 2011
  12. Jun 15, 2011
  13. Jun 10, 2011
  14. Jun 09, 2011
  15. Jun 08, 2011
    • Konstantin Osipov's avatar
      User guide: start pruning tarantool.wiki · 05de3503
      Konstantin Osipov authored
      Start pruning Tarantool wiki on github, and add documentation
      on Tarantool process title to the user guide, since
      it is present on the wiki but not in the user guide.
      
      While at it, make the process title more lookalike on Linux
      and FreeBSD, and rename some of the (what looks to me as) unclear
      process titles.
      The documentation reflects the new naming scheme already.
      05de3503
  16. Jun 07, 2011
  17. Jun 06, 2011
Loading