It seems that while dtrace knows about `hz, /usr/lib/dtrace/tcp.d does not, which causes the following problem: EXPECTED -------- When I run dtrace -ln [[[provider:]module:]probe:]name I expect output like this: # dtrace -ln lockstat::: ID PROVIDER MODULE FUNCTION NAME 25295 lockstat kernel mtx_lock_spin spin-acquire 25296 lockstat kernel mtx_lock_spin spin-spin 25297 lockstat kernel mtx_unlock_spin spin-release ... 25321 lockstat kernel sx_try_upgrade sx-upgrade 25322 lockstat kernel sx_downgrade sx-downgrade 25323 lockstat kernel thread_lock thread-spin ACTUAL ------ but instead I get output like this: dtrace -ln lockstat::: dtrace: invalid probe specifier lockstat:::: "/usr/lib/dtrace/tcp.d", line 201: operator / requires operands of arithmetic type # dtrace -l by itself is not affected. HACK/FIX -------- In /usr/lib/dtrace/tcp.d, when I change line 201 from: 201 tcps_rto = p == NULL ? -1 : (p->t_rxtcur * 1000) / `hz; to: 201 tcps_rto = p == NULL ? -1 : (p->t_rxtcur * 1000) / (int) `hz; I get the output I expect. My understanding is that backticks tell dtrace to use kernel variable names but I'm not sure how to include them so that dtrace sees it. I think hz is an int defined in sys/sys/kernel.h: 60 extern int tick; /* usec per tick (1000000 / hz) */ 61 extern int hz; /* system clock's frequency */ 62 extern int psratio; /* ratio: prof / stat */ and that t_rxtcur defined in sys/netinet/tcp_var.h is also an int. 202 203 int t_rxtcur; /* current retransmit value (ticks) */ 204 u_int t_maxseg; /* maximum segment size */ So I think casting to an int is reasonable. With my hack this also works: # dtrace -n 'BEGIN { trace(`hz); }' dtrace: description 'BEGIN ' matched 1 probe dtrace: buffer size lowered to 2m CPU ID FUNCTION:NAME 0 1 :BEGIN 1000 So I conclude that dtrace knows about hz but tcp.d does not. I suspect there is a way for tcp.d to know about kernel.h rather than do a cast, and that this would be preferable, but I don't know how to do that. SYSTEM INFO ----------- I'm using an eMac (PowerPC G4). # uname -a FreeBSD emac.local 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 05:18:20 UTC 2016 root@releng1.nyi.freebsd.org:/usr/obj/powerpc.powerpc/usr/src/sys/GENERIC powerpc $ dmesg ... FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 05:18:20 UTC 2016 root@releng1.nyi.freebsd.org:/usr/obj/powerpc.powerpc/usr/src/sys/GENERIC powerpc gcc version 4.2.1 20070831 patched [FreeBSD] cpu0: Motorola PowerPC 7455 revision 3.3, 1000.29 MHz cpu0: Features 9c000000<PPC32,ALTIVEC,FPU,MMU> cpu0: HID0 8450c0bc<EMCP,TBEN,NAP,DPM,ICE,DCE,SGE,BTIC,LRSTK,FOLD,BHT> real memory = 520597504 (496 MB) ... Thank you, - d
Your example invocation works for me on amd64. Could you run the command with DTRACE_DEBUG=1 set in the environment and record the output here?
# echo $SHELL /bin/csh # setenv DTRACE_DEBUG 1 # echo $DTRACE_DEBUG 1 WITHOUT HACK ------------ # dtrace -ln lockstat::: libdtrace DEBUG: opened provider dtrace libdtrace DEBUG: opened provider dtmalloc libdtrace DEBUG: opened provider fbt libdtrace DEBUG: opened provider lockstat libdtrace DEBUG: opened provider profile libdtrace DEBUG: opened 32-bit module kernel () [0] libdtrace DEBUG: opened 32-bit module dtraceall.ko () [0] libdtrace DEBUG: opened 32-bit module profile.ko () [0] libdtrace DEBUG: opened 32-bit module opensolaris.ko () [0] libdtrace DEBUG: opened 32-bit module dtrace.ko () [0] libdtrace DEBUG: opened 32-bit module systrace.ko () [0] libdtrace DEBUG: opened 32-bit module sdt.ko () [0] libdtrace DEBUG: opened 32-bit module lockstat.ko () [0] libdtrace DEBUG: opened 32-bit module fbt.ko () [0] libdtrace DEBUG: opened 32-bit module dtnfscl.ko () [0] libdtrace DEBUG: opened 32-bit module dtmalloc.ko () [0] libdtrace DEBUG: created CTF container for C (0x4207a180) libdtrace DEBUG: created CTF container for D (0x4207a300) libdtrace DEBUG: loaded kernel [.SUNW_ctf] (408068 bytes) libdtrace DEBUG: loaded kernel [.symtab] (551824 bytes) libdtrace DEBUG: loaded kernel [.strtab] (929404 bytes) libdtrace DEBUG: hashed kernel [.symtab] (34449 symbols) libdtrace DEBUG: sorted kernel [.symtab] (34410 symbols) libdtrace DEBUG: loaded CTF container for kernel (0x4207a480) libdtrace DEBUG: loaded printf conversion %a libdtrace DEBUG: loaded printf conversion %A libdtrace DEBUG: loaded printf conversion %c libdtrace DEBUG: loaded printf conversion %C libdtrace DEBUG: loaded printf conversion %d libdtrace DEBUG: loaded printf conversion %e libdtrace DEBUG: loaded printf conversion %E libdtrace DEBUG: loaded printf conversion %f libdtrace DEBUG: loaded printf conversion %g libdtrace DEBUG: loaded printf conversion %G libdtrace DEBUG: loaded printf conversion %hd libdtrace DEBUG: loaded printf conversion %hi libdtrace DEBUG: loaded printf conversion %ho libdtrace DEBUG: loaded printf conversion %hu libdtrace DEBUG: loaded printf conversion %hx libdtrace DEBUG: loaded printf conversion %hX libdtrace DEBUG: loaded printf conversion %i libdtrace DEBUG: loaded printf conversion %I libdtrace DEBUG: loaded printf conversion %k libdtrace DEBUG: loaded printf conversion %lc libdtrace DEBUG: loaded printf conversion %ld libdtrace DEBUG: loaded printf conversion %li libdtrace DEBUG: loaded printf conversion %lo libdtrace DEBUG: loaded printf conversion %lu libdtrace DEBUG: loaded printf conversion %ls libdtrace DEBUG: loaded printf conversion %lx libdtrace DEBUG: loaded printf conversion %lX libdtrace DEBUG: loaded printf conversion %lld libdtrace DEBUG: loaded printf conversion %lli libdtrace DEBUG: loaded printf conversion %llo libdtrace DEBUG: loaded printf conversion %llu libdtrace DEBUG: loaded printf conversion %llx libdtrace DEBUG: loaded printf conversion %llX libdtrace DEBUG: loaded printf conversion %Le libdtrace DEBUG: loaded printf conversion %LE libdtrace DEBUG: loaded printf conversion %Lf libdtrace DEBUG: loaded printf conversion %Lg libdtrace DEBUG: loaded printf conversion %LG libdtrace DEBUG: loaded printf conversion %o libdtrace DEBUG: loaded printf conversion %p libdtrace DEBUG: loaded printf conversion %P libdtrace DEBUG: loaded printf conversion %s libdtrace DEBUG: loaded printf conversion %S libdtrace DEBUG: loaded printf conversion %T libdtrace DEBUG: loaded printf conversion %u libdtrace DEBUG: loaded printf conversion %wc libdtrace DEBUG: loaded printf conversion %ws libdtrace DEBUG: loaded printf conversion %x libdtrace DEBUG: loaded printf conversion %X libdtrace DEBUG: loaded printf conversion %Y libdtrace DEBUG: loaded printf conversion %% libdtrace DEBUG: populating global idhash from 0x41908468 libdtrace DEBUG: loaded dtraceall.ko [.SUNW_ctf] (1884 bytes) libdtrace DEBUG: loaded dtraceall.ko [.symtab] (1072 bytes) libdtrace DEBUG: loaded dtraceall.ko [.strtab] (1813 bytes) libdtrace DEBUG: hashed dtraceall.ko [.symtab] (52 symbols) libdtrace DEBUG: sorted dtraceall.ko [.symtab] (47 symbols) libdtrace DEBUG: loaded CTF container for dtraceall.ko (0x4207a600) libdtrace DEBUG: loaded profile.ko [.SUNW_ctf] (17923 bytes) libdtrace DEBUG: loaded profile.ko [.symtab] (1568 bytes) libdtrace DEBUG: loaded profile.ko [.strtab] (1660 bytes) libdtrace DEBUG: hashed profile.ko [.symtab] (81 symbols) libdtrace DEBUG: sorted profile.ko [.symtab] (52 symbols) libdtrace DEBUG: loaded CTF container for profile.ko (0x4207a780) libdtrace DEBUG: loaded opensolaris.ko [.SUNW_ctf] (10844 bytes) libdtrace DEBUG: loaded opensolaris.ko [.symtab] (2352 bytes) libdtrace DEBUG: loaded opensolaris.ko [.strtab] (2482 bytes) libdtrace DEBUG: hashed opensolaris.ko [.symtab] (129 symbols) libdtrace DEBUG: sorted opensolaris.ko [.symtab] (87 symbols) libdtrace DEBUG: loaded CTF container for opensolaris.ko (0x4207aa80) libdtrace DEBUG: loaded dtrace.ko [.SUNW_ctf] (28262 bytes) libdtrace DEBUG: loaded dtrace.ko [.symtab] (8032 bytes) libdtrace DEBUG: loaded dtrace.ko [.strtab] (9572 bytes) libdtrace DEBUG: hashed dtrace.ko [.symtab] (482 symbols) libdtrace DEBUG: sorted dtrace.ko [.symtab] (363 symbols) libdtrace DEBUG: loaded CTF container for dtrace.ko (0x4207ac00) libdtrace DEBUG: loaded systrace.ko [.SUNW_ctf] (30808 bytes) libdtrace DEBUG: loaded systrace.ko [.symtab] (1312 bytes) libdtrace DEBUG: loaded systrace.ko [.strtab] (1491 bytes) libdtrace DEBUG: hashed systrace.ko [.symtab] (65 symbols) libdtrace DEBUG: sorted systrace.ko [.symtab] (48 symbols) libdtrace DEBUG: loaded CTF container for systrace.ko (0x4207ad80) libdtrace DEBUG: loaded sdt.ko [.SUNW_ctf] (17716 bytes) libdtrace DEBUG: loaded sdt.ko [.symtab] (1408 bytes) libdtrace DEBUG: loaded sdt.ko [.strtab] (1399 bytes) libdtrace DEBUG: hashed sdt.ko [.symtab] (71 symbols) libdtrace DEBUG: sorted sdt.ko [.symtab] (43 symbols) libdtrace DEBUG: loaded CTF container for sdt.ko (0x4207b080) libdtrace DEBUG: loaded lockstat.ko [.SUNW_ctf] (17361 bytes) libdtrace DEBUG: loaded lockstat.ko [.symtab] (1232 bytes) libdtrace DEBUG: loaded lockstat.ko [.strtab] (1450 bytes) libdtrace DEBUG: hashed lockstat.ko [.symtab] (60 symbols) libdtrace DEBUG: sorted lockstat.ko [.symtab] (45 symbols) libdtrace DEBUG: loaded CTF container for lockstat.ko (0x4207b380) libdtrace DEBUG: loaded fbt.ko [.SUNW_ctf] (19929 bytes) libdtrace DEBUG: loaded fbt.ko [.symtab] (1872 bytes) libdtrace DEBUG: loaded fbt.ko [.strtab] (1883 bytes) libdtrace DEBUG: hashed fbt.ko [.symtab] (100 symbols) libdtrace DEBUG: sorted fbt.ko [.symtab] (67 symbols) libdtrace DEBUG: loaded CTF container for fbt.ko (0x4207b500) libdtrace DEBUG: loaded dtnfscl.ko [.SUNW_ctf] (17578 bytes) libdtrace DEBUG: loaded dtnfscl.ko [.symtab] (1808 bytes) libdtrace DEBUG: loaded dtnfscl.ko [.strtab] (2657 bytes) libdtrace DEBUG: hashed dtnfscl.ko [.symtab] (96 symbols) libdtrace DEBUG: sorted dtnfscl.ko [.symtab] (61 symbols) libdtrace DEBUG: loaded CTF container for dtnfscl.ko (0x4207b680) libdtrace DEBUG: loaded dtmalloc.ko [.SUNW_ctf] (17500 bytes) libdtrace DEBUG: loaded dtmalloc.ko [.symtab] (1280 bytes) libdtrace DEBUG: loaded dtmalloc.ko [.strtab] (1496 bytes) libdtrace DEBUG: hashed dtmalloc.ko [.symtab] (63 symbols) libdtrace DEBUG: sorted dtmalloc.ko [.symtab] (46 symbols) libdtrace DEBUG: loaded CTF container for dtmalloc.ko (0x4207b800) libdtrace DEBUG: library /usr/lib/dtrace/udp.d sorted (1/2) libdtrace DEBUG: library /usr/lib/dtrace/tcp.d sorted (3/4) libdtrace DEBUG: library /usr/lib/dtrace/ip.d sorted (5/6) libdtrace DEBUG: library /usr/lib/dtrace/io.d sorted (7/8) libdtrace DEBUG: library /usr/lib/dtrace/signal.d sorted (9/10) libdtrace DEBUG: library /usr/lib/dtrace/unistd.d sorted (11/12) libdtrace DEBUG: library /usr/lib/dtrace/errno.d sorted (13/14) libdtrace DEBUG: library /usr/lib/dtrace/psinfo.d sorted (15/16) libdtrace DEBUG: typedef psinfo_t added as id 32805 libdtrace DEBUG: typedef lwpsinfo_t added as id 32808 libdtrace DEBUG: typedef devinfo_t added as id 32811 libdtrace DEBUG: typedef bufinfo_t added as id 32817 libdtrace DEBUG: typedef pktinfo_t added as id 32820 libdtrace DEBUG: typedef zoneid_t added as id 32821 libdtrace DEBUG: typedef csinfo_t added as id 32823 libdtrace DEBUG: typedef ipinfo_t added as id 32825 libdtrace DEBUG: typedef ifinfo_t added as id 32827 libdtrace DEBUG: typedef ipaddr_t added as id 32828 libdtrace DEBUG: typedef ipha_t added as id 32830 libdtrace DEBUG: typedef ipv4info_t added as id 32833 libdtrace DEBUG: typedef in6_addr_t added as id 32844 libdtrace DEBUG: typedef ipv6info_t added as id 32855 libdtrace DEBUG: typedef tcpsinfo_t added as id 32865 libdtrace DEBUG: typedef tcplsinfo_t added as id 32867 libdtrace DEBUG: typedef tcpinfo_t added as id 32876 libdtrace DEBUG: typedef tcpinfoh_t added as id 32878 dtrace: invalid probe specifier lockstat:::: "/usr/lib/dtrace/tcp.d", line 201: operator / requires operands of arithmetic type libdtrace DEBUG: dt_buf_destroy(section headers): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(string table): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(loadable data): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(unloadable data): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe data): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe args): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe offs): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe is-enabled offs): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe rels): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(xlate members): size=512 resizes=0 WITH HACK --------- # dtrace -ln lockstat::: libdtrace DEBUG: opened 32-bit module kernel () [0] libdtrace DEBUG: opened 32-bit module dtraceall.ko () [0] libdtrace DEBUG: opened 32-bit module profile.ko () [0] libdtrace DEBUG: opened 32-bit module opensolaris.ko () [0] ... libdtrace DEBUG: typedef ipv4info_t added as id 32833 libdtrace DEBUG: typedef in6_addr_t added as id 32844 libdtrace DEBUG: typedef ipv6info_t added as id 32855 libdtrace DEBUG: typedef tcpsinfo_t added as id 32865 libdtrace DEBUG: typedef tcplsinfo_t added as id 32867 libdtrace DEBUG: typedef tcpinfo_t added as id 32876 libdtrace DEBUG: typedef tcpinfoh_t added as id 32878 libdtrace DEBUG: typedef udpsinfo_t added as id 32884 [above does't get to here...] libdtrace DEBUG: typedef udpinfo_t added as id 32889 libdtrace DEBUG: set context to lockstat::: [0] prp=0x0 attr=[u/u/c] argc=0 libdtrace DEBUG: set label to <action list> libdtrace DEBUG: set label to <NULL> ID PROVIDER MODULE FUNCTION NAME 25295 lockstat kernel mtx_lock_spin spin-acquire 25296 lockstat kernel mtx_lock_spin spin-spin 25297 lockstat kernel mtx_unlock_spin spin-release 25298 lockstat kernel mtx_lock adaptive-acquire 25299 lockstat kernel mtx_lock adaptive-block 25300 lockstat kernel mtx_lock adaptive-spin 25301 lockstat kernel mtx_unlock adaptive-release 25302 lockstat kernel mtx_trylock adaptive-acquire 25303 lockstat kernel rw_rlock rw-acquire 25304 lockstat kernel rw_rlock rw-block 25305 lockstat kernel rw_rlock rw-spin 25306 lockstat kernel rw_runlock rw-release 25307 lockstat kernel rw_wlock rw-acquire 25308 lockstat kernel rw_wlock rw-block 25309 lockstat kernel rw_wlock rw-spin 25310 lockstat kernel rw_wunlock rw-release 25311 lockstat kernel rw_try_upgrade rw-upgrade 25312 lockstat kernel rw_downgrade rw-downgrade 25313 lockstat kernel sx_slock sx-acquire 25314 lockstat kernel sx_slock sx-block 25315 lockstat kernel sx_slock sx-spin 25316 lockstat kernel sx_sunlock sx-release 25317 lockstat kernel sx_xlock sx-acquire 25318 lockstat kernel sx_xlock sx-block 25319 lockstat kernel sx_xlock sx-spin 25320 lockstat kernel sx_xunlock sx-release 25321 lockstat kernel sx_try_upgrade sx-upgrade 25322 lockstat kernel sx_downgrade sx-downgrade 25323 lockstat kernel thread_lock thread-spin libdtrace DEBUG: dt_buf_destroy(section headers): size=512 resizes=0 [...above resumes here] libdtrace DEBUG: dt_buf_destroy(string table): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(loadable data): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(unloadable data): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe data): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe args): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe offs): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe is-enabled offs): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(probe rels): size=512 resizes=0 libdtrace DEBUG: dt_buf_destroy(xlate members): size=512 resizes=0
I think this is relevant: 1) On my emac, it looks like `hz is a pointer to an int. # dtrace -n 'BEGIN { printf("`hz: %d\n", `hz); exit(0); }' dtrace: invalid probe specifier BEGIN { printf("%d\n", `hz); exit(0); }: printf( ) argument #2 is incompatible with conversion #1 prototype: conversion: %d prototype: char, short, int, long, or long long argument: int (*)() # dtrace -qn 'BEGIN { printf("`hz: %p, (int) `hz: %d\n", `hz, (int) `hz); exit(0); }' dtrace: buffer size lowered to 2m `hz: 3e8, (int) `hz: 1000 2) On my amd64 system (running in virtualbox on a macbook), `hz is an int. # uname -a FreeBSD macbook.local 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 02:10:02 UTC 2016 root@releng1.nyi.freebsd.org:/usr /obj/usr/src/sys/GENERIC amd64 # dtrace -qn 'BEGIN { printf("`hz: %d\n", `hz); exit(0); }' `hz: 1000 # dtrace -qn 'BEGIN { printf("&`hz: %p, `hz: %d\n", &`hz, `hz); exit(0); }' &`hz: ffffffff816a5d4c, `hz: 1000 3) I would bet they should be the same. Assuming sys/sys/kernel.h is the right file, hz is defined as an int there so maybe it's not being brought into dtrace correctly on powerpc and/or on 32 bit systems. Because I used trace(`hz), which tries to do the right thing (use a cast if needed) above, it seemed like it worked. I'm also surprised the value of hz is 1000 on my amd64 system. I thought it would be higher; I double checked to make sure I didn't copy the wrong text. I guess it doesn't mean what I thought it meant.
Indeed, it looks like the CTF info (C type info used by DTrace) for your kernel is incorrect. hz should be an int. As you're using a stock 10.3 kernel, I should be able to grab it myself and look for the problem.
Is powerpc64 different than powerpc? If they're different it seems powerpc64 has the same problem: # dtrace -ln lockstat::: dtrace: invalid probe specifier lockstat:::: "/usr/lib/dtrace/tcp.d", line 201: operator / requires operands of arithmetic type # uname -a FreeBSD g5.local 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 05:57:04 UTC 2016 root@releng1.nyi.freebsd.org:/usr/obj/powerpc.powerpc64/usr/src/sys/GENERIC64 powerpc
So I'm wrong. On powerpc64 it's not the same; it's worse: When I change /usr/lib/dtrace/tcp.d and cast `hz to int: 200 tcps_sack_snxt = p == NULL ? 0 : p->sack_newdata; 201 tcps_rto = p == NULL ? -1 : (p->t_rxtcur * 1000) / (int) `hz; 202 tcps_mss = p == NULL ? -1 : p->t_maxseg; and run: # dtrace -ln lockstat::: I get: dtrace: invalid probe specifier lockstat:::: "/usr/lib/dtrace/tcp.d", line 201: invalid cast expression: "struct ip6stat" to "int" When I change /usr/lib/dtrace/tcp.d to: 200 tcps_sack_snxt = p == NULL ? 0 : p->sack_newdata; 201 tcps_rto = p == NULL ? -1 : (p->t_rxtcur * 1000) / 1000; 202 tcps_mss = p == NULL ? -1 : p->t_maxseg; and run: # dtrace -n 'BEGIN { trace(`hz); exit(0); }' I get: dtrace: description 'BEGIN ' matched 1 probe CPU ID FUNCTION:NAME 0 1 :BEGIN 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 0: 00 00 03 e8 00 00 03 e8 00 00 00 00 00 41 89 37 .............A.7 10: 00 00 00 00 00 00 00 00 00 41 89 37 4b c6 a7 ee .........A.7K... 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 30: 00 01 80 00 00 00 00 00 00 00 00 00 04 00 00 00 ................ ... ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 ................ cb0: 00 00 00 00 01 54 3e 00 00 00 00 00 00 b3 24 c8 .....T>.......$. cc0: 00 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ cd0: 00 00 00 00 00 00 00 04 00 00 00 00 01 54 28 80 .............T(. ce0: 00 00 00 00 00 b3 24 c8 00 0b 00 00 00 00 00 00 ......$......... it seems `hz is a struct when it should be an int. Would you prefer I file this as a separate bug?
batch change: For bugs that match the following - Status Is In progress AND - Untouched since 2018-01-01. AND - Affects Base System OR Documentation DO: Reset to open status. Note: I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.
I suspect that this issue is fixed on HEAD and stable/11; in the past we had issues with CTF type index overflows which could result in the symptoms seen here. To the submitter: are you able to reproduce this on 10.4 or 11.*?
Closing for now. Please reopen if this is reproducible on a more recent release.