Incomplete error output in Memcached protocol

Bug #769040 reported by Kostja Osipov
6
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.

Kostja Osipov (kostja)
Changed in tarantool:
milestone: none → 1.3.5
assignee: nobody → Roman Tokarev (roman-s-tokarev)
Changed in tarantool:
status: New → Fix Committed
Revision history for this message
Kostja Osipov (kostja) wrote :

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!

Revision history for this message
Kostja Osipov (kostja) wrote :

Fix pushed to master-stable, merged to master.

Changed in tarantool:
importance: Undecided → High
Kostja Osipov (kostja)
Changed in tarantool:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.