Skip to content

Wrong comparison between operation response code and request code #141

Closed
@nicktorwald

Description

@nicktorwald

It seems we have a regression in scope of SQL request completion after 9471340.

  1. here we get operation response code.
  2. Next line compares code status against 0 (success)
  3. If true the same code status is compared with EXECUTE (11) request code which always leads to be evaluated to false (0 never equals 11).
  4. As a result, completeSql method will never be called anymore.
protected void complete(TarantoolPacket packet, CompletableFuture<?> q) {
        if (q != null) {
            long code = packet.getCode();
            if (code == 0) {

                if (code == Code.EXECUTE.getId()) {  // 0 == 11 always evaluates to false
                    completeSql(q, packet);
                } else {
                    ((CompletableFuture) q).complete(packet.getBody().get(Key.DATA.getId()));
                }
            } else {
                Object error = packet.getBody().get(Key.ERROR.getId());
                fail(q, serverError(code, error));
            }
        }
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions