- Feb 11, 2015
-
-
Konstantin Osipov authored
Fix a bug when the server would enter read-write mode prematurely in hot standby mode, and let the script continue and try to create spaces/indexes. The bug is a regression introduced by the patch which changed cfg.listen to a dynamic option. This is an *incompatible* change: box.cfg{} used to return before binding to the primary port, this is no llonger the case. Always bind to the listen port in box.cfg{} call, not in the background, and leave local hot standby mode *before* leaving box.cfg{}. This avoids tons of tricky race conditions in user scripts when box.cfg{} has ended but the server is actually still read only. Except, thanks to another bug in box_set_cluster_id(), it wasn't really read-only, because box_set_cluster_id() would switch off read-only mode before local hot standby has ended (so a superposition of two bugs). The manifestation of this was as follows: Imagine the following script: box.cfg{listen = 3301} box.schema.space.create('tester') box.space.tester:create_index('primary') The server would start in local hot standby mode. Save a snapshot. Fall through to DDL. Then leave local hot standby and turn on WAL. The created space will end up not being in the write ahead log. The problem wasn't noticable in most cases, since the server could bind to the primary port quite quickly. Fix the test runner to detect a local hot standby server as started. Add a workaround for gh-721 until a complete patch is ready.
-
- Feb 10, 2015
-
-
Konstantin Osipov authored
Rewrite replication to use cooperative I/O. Propagate replication exceptions to the main thread. Introduce a function which stats a thread with a running event machine in it.
-
Konstantin Osipov authored
Fix a few bugs related to destruction of resources allocated in a non-main thread. Remove replication_prefork() and all the code related to pushing a socket into another process. Add debug asserts to slab cache, to ensure it's used from a single thread only.
-
Alexandr Lyapunov authored
-
- Feb 09, 2015
-
-
Konstantin Osipov authored
-
Konstantin Osipov authored
Export memsize() in Lua (part of the original patch by @unera).
-
Roman Tsisyk authored
Conflicts: src/lua/bsdsocket.lua test/box/bsdsocket.result test/box/bsdsocket.test
-
Roman Tsisyk authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Dmitry Simonenko authored
-
Roman Tsisyk authored
-
Dmitry Simonenko authored
-
Roman Tsisyk authored
-
Roman Tsisyk authored
-
Roman Tsisyk authored
-
- Feb 06, 2015
-
-
bigbes authored
-
bigbes authored
-
Konstantin Osipov authored
Fix link to homebrew formula
-
Alexandr Lyapunov authored
-
Konstantin Osipov authored
Change local hot standby to run in a fiber, not out of event loop hooks.
-
Paul Chechetin authored
-
- Feb 05, 2015
-
-
Konstantin Osipov authored
admin_credentials need to have correct credentials of the superusers, but they are initialized before the user subsystem is initialized. Initialize them manually.
-
Konstantin Osipov authored
ER_CLUSTER_ID_MISMATCH outputs two UUIDs, while uuid_to_str can only work with 1.
-
Konstantin Osipov authored
Add replication status to box.info(). When replication is off, box.info.replication.status is 'off'. Other allowed statuses are: - 'connecting' - trying to connect to the master - 'connected' - connected, but nothing read yet, - 'running' - successfully received first rows - 'failed' - network error - 'stopped' - apply conflict, replication needs to be restarted Move recovery_last_update and recovery_delay to section 'replication' in box.info(), replace the first with 'lag' variable, indicating the time difference between the currnet time and row time of the last row, and 'idle' variable, indicating the difference between the current time and the time of last event from the master. Also output the text of the last error when it happens and stops replication. Make vclock output in box.info more compact. Remove 'sophia' section from box.info, it's big, and we need to solve the problem of status systematically for all engines. Fix crashes when trying to stop failed replication: fiber_cancel() of a dead cancellable fiber would try to schedule it and crash.
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
bigbes authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
Conflicts: src/box/memtx_hash.cc src/box/memtx_tree.cc test/wal/oom.result
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
Konstantin Osipov authored
-
- Feb 04, 2015
-
-
Roman Tsisyk authored
This patch also extends API of box.session.su(): - box.session.su(username) - changes user to `username' - box.session.su(username, fun, ...) executes `fun' with permission of `username' This feature is needed to fix a possible security hole with passwd().
-