Tags: hurricane1026/seastar
Tags
semaphore: specify consume_units as noexcept semaphore::consume is trivially noexcept and semaphore_units(basic_semaphore&, size_t) is also noexcept so consume_units can be specified as noexcept. Also, fix get_units' comment to say it returns an exceptional future rather than throwing an exception. Signed-off-by: Benny Halevy <[email protected]> Message-Id: <[email protected]>
core/deleter: Fix abort when append() is called twice with a shared d… …eleter Appending a deleter which has the same impl pointer as a deleter which already exists in the chain triggered the assertion which was there to protect against formation of a cycle in the deleter chain (and thus infinite loop). This case can be handled by simply dropping such deleters based on the premise that the existing deleter is enough to keep the object alive. This causes the following code to fail: temporary_buffer<char> big_buf(200); auto buf1 = big_buf.share(0, 10); auto buf2 = big_buf.share(11, 10); net::packet p; p.append(net::packet(std::move(buf1))); p.append(net::packet(std::move(buf2))); Fixes scylladb#646. Tests: - unit (dev) Message-Id: <[email protected]>
seastar-addr2line: don't print an empty line between backtrace lines In most cases addr2line's output will already has a newline character at the end of the last line (because the line coming from the input does), no need for `print()` to add another one, introducing an unnecessary empty line. Use `sys.stdout.write()` to have full control over when a new line is printed. Signed-off-by: Botond Dénes <[email protected]> Message-Id: <5481db11ef4cf50f07805f26005349c22c56a797.1535026792.git.bdenes@scylladb.com>
execution_stage: fix wrong exception thrown for non-unique stages The metrics API now also enforces uniqueness, and as it is called before execution stage registration, it throws earlier, and confuses the unit test because a different exception type is expected. Fix by reversing the order of metrics registration and execution stage registration.