Incomplete error output in Memcached protocol
Bug #769040 reported by
Kostja Osipov
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tarantool |
Fix Released
|
High
|
Roman Tokarev |
Bug Description
When an error occurs in box_dispatch() and the used protocol is Memcached, the error information is lost and not sent to the client.
This happens because in Memcached protocol we silence all output (txn->quiet is set), and there is no other
way to get an error from box_dispatch than reading what it wrote to the socket.
Two different fixes are needed for 1.3 and 1.4: 1.3 just needs a hack solution that in addition to writing the error to the network puts it aside to be able to inspect later, and 1.4 perhaps should just let the caller intercept the exception and deal with it in Memcached mode.
Changed in tarantool: | |
milestone: | none → 1.3.5 |
assignee: | nobody → Roman Tokarev (roman-s-tokarev) |
Changed in tarantool: | |
status: | New → Fix Committed |
Changed in tarantool: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Code review comments:
- let's do the array of all error a condensed one, not a sparse one. We've already hit 15 thousands in error index, and this is going to only grow
- error messages should be complete English sentences, starting from Uppercase letter (no dot, since sometimes it's desirable to include an error in a context where dot is out of place).
Thank you!