Bug 401846

Summary: vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xC7 0xF1 0x73 0x14 0x48 0x89
Product: [Developer tools] valgrind Reporter: Forest Rouse <forest>
Component: memcheckAssignee: Julian Seward <jseward>
Status: CLOSED DUPLICATE    
Severity: crash CC: mark, tom
Priority: NOR    
Version: 3.11.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: Valgrind log file

Description Forest Rouse 2018-12-07 00:53:44 UTC
SUMMARY

Yet another amd instruction sequence that isn't handled

vex amd64->IR: unhandled instruction bytes: 0x48 0xF 0xC7 0xF1 0x73 0x14 0x48 0x89
vex amd64->IR:   REX=1 REX.W=1 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=0F
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0

STEPS TO REPRODUCE
1. 
2. 
3. 

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
MacOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Forest Rouse 2018-12-07 01:10:33 UTC
Looks like the stack trace is from grpc:

==2889== valgrind: Unrecognised instruction at address 0xabefcc.
==2889==    at 0xABEFCC: ??? (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA6596D: RAND_bytes (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1856E: bssl::ssl_client_handshake(bssl::SSL_HANDSHAKE*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1C4FE: bssl::ssl_run_handshake(bssl::SSL_HANDSHAKE*, bool*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x9FD12F: SSL_do_handshake (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x62DE3D: create_tsi_ssl_handshaker (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x628D24: ssl_channel_add_handshakers (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x6588B5: grpc_handshakers_add (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x61BC87: connected (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x66AE13: grpc_exec_ctx_flush (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x673A37: pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x669E39: grpc_pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889== Your program just tried to execute an instruction that Valgrind
==2889== did not recognise.  There are two possible reasons for this.
==2889== 1. Your program has a bug and erroneously jumped to a non-code
==2889==    location.  If you are running Memcheck and you just saw a
==2889==    warning about a bad jump, it's probably your program's fault.
==2889== 2. The instruction is legitimate but Valgrind doesn't handle it,
==2889==    i.e. it's Valgrind's fault.  If you think this is the case or
==2889==    you are not sure, please let us know and we'll try to fix it.
==2889== Either way, Valgrind will now raise a SIGILL signal which will
==2889== probably kill your program.
==2889== 
==2889== Process terminating with default action of signal 4 (SIGILL)
==2889==  Illegal opcode at address 0xABEFCC
==2889==    at 0xABEFCC: ??? (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA6596D: RAND_bytes (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1856E: bssl::ssl_client_handshake(bssl::SSL_HANDSHAKE*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1C4FE: bssl::ssl_run_handshake(bssl::SSL_HANDSHAKE*, bool*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x9FD12F: SSL_do_handshake (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x62DE3D: create_tsi_ssl_handshaker (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x628D24: ssl_channel_add_handshakers (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x6588B5: grpc_handshakers_add (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x61BC87: connected (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x66AE13: grpc_exec_ctx_flush (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x673A37: pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x669E39: grpc_pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
Comment 2 Forest Rouse 2018-12-07 01:11:00 UTC
==2889== valgrind: Unrecognised instruction at address 0xabefcc.
==2889==    at 0xABEFCC: ??? (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA6596D: RAND_bytes (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1856E: bssl::ssl_client_handshake(bssl::SSL_HANDSHAKE*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1C4FE: bssl::ssl_run_handshake(bssl::SSL_HANDSHAKE*, bool*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x9FD12F: SSL_do_handshake (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x62DE3D: create_tsi_ssl_handshaker (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x628D24: ssl_channel_add_handshakers (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x6588B5: grpc_handshakers_add (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x61BC87: connected (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x66AE13: grpc_exec_ctx_flush (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x673A37: pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x669E39: grpc_pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889== Your program just tried to execute an instruction that Valgrind
==2889== did not recognise.  There are two possible reasons for this.
==2889== 1. Your program has a bug and erroneously jumped to a non-code
==2889==    location.  If you are running Memcheck and you just saw a
==2889==    warning about a bad jump, it's probably your program's fault.
==2889== 2. The instruction is legitimate but Valgrind doesn't handle it,
==2889==    i.e. it's Valgrind's fault.  If you think this is the case or
==2889==    you are not sure, please let us know and we'll try to fix it.
==2889== Either way, Valgrind will now raise a SIGILL signal which will
==2889== probably kill your program.
==2889== 
==2889== Process terminating with default action of signal 4 (SIGILL)
==2889==  Illegal opcode at address 0xABEFCC
==2889==    at 0xABEFCC: ??? (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA6596D: RAND_bytes (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1856E: bssl::ssl_client_handshake(bssl::SSL_HANDSHAKE*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0xA1C4FE: bssl::ssl_run_handshake(bssl::SSL_HANDSHAKE*, bool*) (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x9FD12F: SSL_do_handshake (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x62DE3D: create_tsi_ssl_handshaker (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x628D24: ssl_channel_add_handshakers (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x6588B5: grpc_handshakers_add (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x61BC87: connected (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x66AE13: grpc_exec_ctx_flush (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x673A37: pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
==2889==    by 0x669E39: grpc_pollset_work (in /home/forest/.cache/bazel/_bazel_forest/fed0d7792e44cc42f318618a90761ed0/execroot/__main__/bazel-out/k8-opt/bin/ui/pe/backend/proton/proton)
Comment 3 Forest Rouse 2018-12-07 01:12:41 UTC
Created attachment 116728 [details]
Valgrind log file
Comment 4 Mark Wielaard 2018-12-07 08:05:17 UTC
This is rdrand on an old Valgrind version 3.11.0

*** This bug has been marked as a duplicate of bug 353370 ***
Comment 5 Forest Rouse 2018-12-07 21:55:30 UTC
Thanks.  I should have suspected that this bug in fact covered what I reported as obviously only the instruction needs to be the same.

I built the latest version manually instead of using what is the default version I pulled from apt and that solved the problem.