[CCBC-120] Unhandled opcode=92 Created: 09/Nov/12  Updated: 06/Feb/13  Resolved: 08/Dec/12

Status: Closed
Project: Couchbase C client library libcouchbase
Component/s: None
Affects Version/s: None
Fix Version/s: 2.0.1
Security Level: Public

Type: Bug Priority: Major
Reporter: Mark Nunberg Assignee: Mark Nunberg
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment: During an observe + rebalance-in.

Cluster build 1941, lcb 2.0.0-beta2-something (git sha d34403763eec7f91e98fa13e260d47ef64a05945).. php is my own build atm (until i push)

Issue Links:
blocks PCBC-143 segfault during lcb handle-level erro... Resolved

#0 0x00007ffff6143acf in php_couchbase_error_callback (handle=0x11c0c70, error=LCB_EINTERNAL,
    errinfo=0x7fffffffa2a0 "Unknown implicit send message op=92") at /sources/lcb2.0-repo/php/couchbase.c:724
#1 0x00007ffff5f1aa85 in lcb_error_handler (instance=0x11c0c70, error=LCB_EINTERNAL,
    errinfo=0x7fffffffa2a0 "Unknown implicit send message op=92") at src/error.c:67
#2 0x00007ffff5f28278 in lcb_server_purge_implicit_responses (c=0x15e67d0, seqno=39360, end=1352507659266497000)
    at src/server.c:710
#3 0x00007ffff5f1af11 in parse_single (c=0x15e67d0, stop=1352507659266497000) at src/event.c:135
#4 0x00007ffff5f1b3ca in do_read_data (c=0x15e67d0) at src/event.c:232
#5 0x00007ffff5f1b5a4 in lcb_server_event_handler (sock=14, which=2, arg=0x15e67d0) at src/event.c:298
#6 0x00007ffff5a5dccc in event_base_loop () from /usr/lib/x86_64-linux-gnu/libevent-2.0.so.5
#7 0x00007ffff5c95547 in lcb_io_run_event_loop (iops=0x11c0740) at plugins/io/libevent/plugin-libevent.c:320
#8 0x00007ffff5f2aa1c in lcb_wait (instance=0x11c0c70) at src/wait.c:116
#9 0x00007ffff61523f9 in observe_iterate (res=0x11a3c50, ocoll=0x7fffffffa720) at /sources/lcb2.0-repo/php/observe.c:529
#10 0x00007ffff61525b7 in observe_poll (res=0x11a3c50, ocoll=0x7fffffffa720, tprefs=0x7fffffffa700)
    at /sources/lcb2.0-repo/php/observe.c:597
#11 0x00007ffff6153096 in php_couchbase_observe_impl (ht=2, return_value=0x14e2af8, return_value_ptr=0x0, this_ptr=0x11a2f60,
    return_value_used=1, tsrm_ls=0xf53090, multi=1, oo=1, poll=1) at /sources/lcb2.0-repo/php/observe.c:862
#12 0x00007ffff614e089 in zim_couchbase_keyDurabilityMulti (ht=2, return_value=0x14e2af8, return_value_ptr=0x0,
    this_ptr=0x11a2f60, return_value_used=1, tsrm_ls=0xf53090) at /sources/lcb2.0-repo/php/couchbase.c:3468
#13 0x000000000088d5cd in zend_do_fcall_common_helper_SPEC (execute_data=0x7ffff5e96098, tsrm_ls=0xf53090)
    at /sources/php-5.3.17/Zend/zend_vm_execute.h:320
#14 0x000000000088dfe8 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER (execute_data=0x7ffff5e96098, tsrm_ls=0xf53090)
    at /sources/php-5.3.17/Zend/zend_vm_execute.h:425
#15 0x000000000088c588 in execute (op_array=0x11a3ce8, tsrm_ls=0xf53090) at /sources/php-5.3.17/Zend/zend_vm_execute.h:107
#16 0x0000000000851d7a in zend_execute_scripts (type=8, tsrm_ls=0xf53090, retval=0x0, file_count=3)
    at /sources/php-5.3.17/Zend/zend.c:1236
#17 0x00000000007b5106 in php_execute_script (primary_file=0x7fffffffde10, tsrm_ls=0xf53090)
    at /sources/php-5.3.17/main/main.c:2308
#18 0x0000000000951d89 in main (argc=3, argv=0x7fffffffe078) at /sources/php-5.3.17/sapi/cli/php_cli.c:1189

I don't really have a way to reproduce this right now, I just happened to have been in that situation.

Comment by Sergey Avseyev [ 12/Nov/12 ]
92 is observe command, could you show your PHP script?
Comment by Sergey Avseyev [ 13/Nov/12 ]
Comment by Sergey Avseyev [ 13/Nov/12 ]
Now it will respond with LCB_SERVER_BUG if found stale OBSERVE packet. It will use command callback instead of generic error callback, therefore you will have context and key name
Comment by Mark Nunberg [ 21/Nov/12 ]
I'll see if I recognize this one again.. this was rather difficult to reproduce and only happened accidentally -- I'm guessing that when and if the sdkd has observe implemented we'd be able to more reliably reproduce it
Comment by Sergey Avseyev [ 21/Nov/12 ]
And at least now, you won't get abort() in real life application, but still can abort in tests
Generated at Sat Jul 12 19:22:00 CDT 2014 using JIRA 5.2.4#845-sha1:c9f4cc41abe72fb236945343a1f485c2c844dac9.