- Aug 22, 2017
-
-
Vladimir Davydov authored
-
Georgy Kirichenko authored
On cpipe_destroy all queued messages were flushed to endpoint but queue length counter was not zeroed. This breaks an empty pipe check at cpipe_flush_cb and then crashes tarantool in cases if corresponding endpoint has been already deleteted before this callback invocation. Fixed #2703
-
Roman Tsisyk authored
Replace dynamic function pointers with link-time resolving. Needed for #2335
-
Georgy Kirichenko authored
Don't resend relay vclock if not changed because a relay loop might be woken up with cbus messaging.
-
- Aug 21, 2017
-
-
Vladislav Shpilevoy authored
Now system space formats contain conflicts between space:format, their index parts and actual tuple fields. Such formats can not be used to check tuple fields in SQL. Fix them in order of #2652
-
Vladislav Shpilevoy authored
strlen() can not be called on message pack auth data. Besides, auth data can be not only string, but also array or map. And if array/map is empty, strlen() returns > 0 - it is incorrect. Needed for #2652
-
Roman Tsisyk authored
- Use malloc() as a fallback for lsregion for large size - Set Vinyl slab_size to 16Mb and don't use vinyl_max_tuple_size for calculation - Allow dynamic configuration of vinyl_max_tuple_size A part of #2342
-
Vladimir Davydov authored
On 64-bit iconv called via ffi returns a uint64_t cdata object, which equals to -1 in case of error so error handling works fine. On 32-bit it returns a number equal to (size_t)-1, which is equal to 4294967295 and not equal to -1 when compared to in Lua. As a result Lua binding to iconv hangs if the source string is incorrect. Fix this by comparing the result of iconv to ffi.cast('size_t', -1) instead of -1.
-
Vladislav Shpilevoy authored
Closes #2466
-
Vladislav Shpilevoy authored
Follow up #2334
-
Georgy Kirichenko authored
An on_replace trigger on replica can issue local changes using its own replica_id. Check replica_id for every row during writing to WAL. Fixes #2682
-
- Aug 19, 2017
-
-
Alexandr Lyapunov authored
-
- Aug 18, 2017
-
-
Vladimir Davydov authored
Fix minor issues found by coverity scan: - Do not try to estimate slice size if the run is empty to avoid div/0. - Fix assert() that is supposed to check slice->first_page_no, but checks last_page_no instead. - If the slice doesn't intersect with the run (i.e. slice->end is less than or equal to run->begin), leave its stats zeroed out.
-
Roman Tsisyk authored
Closes #2698
-
Alexandr Lyapunov authored
The bug happens when some TX deletes a statement (writes it to its own write set) and then reads a range of tuples containing that deleted statement. DELETE must not come to select result (in this and only transaction before it is committed) and just are skipped by read iterator. After such a skipping and getting next true (non-DELETE) statement the iterator considers that there is no data between the previous statement and the current, and add them to the cache as a chain. This is wrong because the data could be hidden by DELETE statement. Track such jumps over TXW DELETE statements in read iterator and do not add statements as a chain in this case.
-
Vladimir Davydov authored
We use a binary tree for tracking reads (read_set). The tree is ordered by (index, statement, tx). Insertion of a partial statement into the tree may result in breaking comparison transitivity, which is mandated by the tree implementation. However, for range requests we insert the search key into the read set, which may be partial. This may result in a crash in the read_set. Tracking the search key doesn't make much sense anyway: it doesn't bring us any closer to range request tracking, only obscures the semantics of select. So let's track only statements actually returned by the iterator plus gaps found by point requests. Closes #2675
-
Roman Tsisyk authored
Fix bad merge of 945a97db and 7a5835f4
-
Konstantin Osipov authored
-
Vladimir Davydov authored
A dump task can be scheduled or completed after we saved stats. Make sure this doesn't happen. Closes #2696
-
Roman Tsisyk authored
-
Georgy Kirichenko authored
Do not use thumb specifier for asm code, use unified syntax directive instead.
-
Vladimir Davydov authored
Revoke permissions granted by the test.
-
- Aug 17, 2017
-
-
Vladislav Shpilevoy authored
Needed for #946
-
Georgy Kirichenko authored
Relay reader fiber is jonable now and should be joined by relay main fiber. See #2284
-
Konstantin Osipov authored
Don't stop coio twice. Update comments.
-
Georgy Kirichenko authored
Replication slave send its current vclock to replication master after recieving new data from master. See #2284
-
Georgy Kirichenko authored
-
Alexandr Lyapunov authored
There is a check in vy_point_iterator_apply_history that compares statement's lsn with lsn with vlsn and skips history node if the statement is invisible. This check is wrong: - if TX was originally in a read view it could not read any invisible statement. - if TX was not in a read view but were sent to read during yield, the new created read view must see all current database state, including data that was read by the iterator. - if TX is in read view and made some changes (in own TX write set) it will skip TXW statement since it has INT64_MAX lsn. Replace check with assert. Concern possibility of TXW statement. Write appropriate test.
-
Roman Tsisyk authored
-
Roman Tsisyk authored
test/small symlink was created only on `make test`, create this symlink `make all`.
-
Konstantin Osipov authored
-
Georgy Kirichenko authored
Check current user write access on space truncate. Fixes #2674
-
Georgy Kirichenko authored
_truncate space write access is required for space truncation. Add this privilege to bootstrap.snap. See #2674
-
- Aug 16, 2017
-
-
Roman Tsisyk authored
Closes #2609 Closes #2633 Closes #2616
-
Georgy Kirichenko authored
Follow up #910
-
Alexandr Lyapunov authored
vinyl_cache_add takes pair of statements - current and previous. By design, there must be no statements in cache between them. Some time ago a check was made that the previous statement is in cache and lays right next to current statement; if that was not true, the function exited without building a cache chain. The was wrong because there are some cases when the statement could be removed by TX finalize/rollback after prepare or even by cache garbage collector. Later in this check 'return' was replaced by 'assert' and that caused rare test crash. Fix this check. Check only two things 1) absence of entries between current and previous statements 2) presence of previous statement if current is already in chain. Add a test case. See code comments for details. Fixes #2685
-
Roman Tsisyk authored
Discard xlogs with large tuples after decreasing memtx_max_tuple_size. Follow up #2667
-
Alexandr Lyapunov authored
Add a special dump-waiting error injection to vy_point_iterator_get that will wait for a dump completion. Use it in test and make code coverage complete. In the point iterator test
-
Alexandr Lyapunov authored
Fix a couple of mistakes in point_iterator and enable it back. Disable 'could be serializable' suggestion in tx_conflic test since new point iterator adds its key to read set before reading from disk and that leads to unnecessary conflicts sometimes. Fix #2662
-
- Aug 15, 2017
-
-
Roman Tsisyk authored
No semantic changes. Follow up #2047
-