Tags: jiedengye111/seastar
Tags
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: <1559585573-17364-1-git-send-email-tgrabiec@scylladb.com>
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 <bdenes@scylladb.com> 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.