Repository navigation
[parity] node:worker_threads — 167 failing node-suite tests (2026-07-22 baseline) #6763
Copy link
Copy link
Closed
Labels
parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystemCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
Description
Part of the node-suite parity sweep of 2026-07-22 (full run: 3,815 tests, 3,019 pass, 79.1% — report test-parity/reports/parity_report_20260722_120605.json, oracle Node 26.5.0 per .node-version). Umbrella: #793.
node:worker_threads has 167 failing test(s) in test-parity/node-suite/worker_threads/.
Reproduce:
./run_parity_tests.sh --suite node-suite --module worker_threadsFailing tests
-
node-suite/worker_threads/broadcast-channel/close-and-clone— output mismatch- Node: typed clone: true 3,1,4 9,1,4
- Perry: typed clone: false not-typed 9,1,4
-
node-suite/worker_threads/broadcast-channel/close-and-ref-idempotence— output mismatch- Node: ref return: true
- Perry: ref return: true
-
node-suite/worker_threads/broadcast-channel/constructor-and-name— output mismatch- Node: missing TypeError ERR_MISSING_ARGS
- Perry: missing name undefined string
-
node-suite/worker_threads/broadcast-channel/constructor-coercion-edges— output mismatch- Node: null name null
- Perry: null name undefined
-
node-suite/worker_threads/broadcast-channel/custom-inspect— output mismatch- Node: custom: function TypeError:ERR_INVALID_THIS
- Perry: custom: undefined TypeError:
-
node-suite/worker_threads/broadcast-channel/error-precedence— output mismatch- Node: open symbol: DataCloneError:25
- Perry: open symbol: ok
-
node-suite/worker_threads/broadcast-channel/listener-once— output mismatch- Node: events: once:first,regular:first,regular:second
- Perry: events: once:first,regular:first,once:second,regular:second
-
node-suite/worker_threads/broadcast-channel/messageevent-metadata— output mismatch- Node: event: true message payload true true
- Perry: event: false message payload true true
-
node-suite/worker_threads/broadcast-channel/method-receivers— output mismatch- Node: name getter: function TypeError:ERR_INVALID_THIS
- Perry: name getter: undefined TypeError:
-
node-suite/worker_threads/broadcast-channel/onmessage-replacement— output mismatch- Node: events: second:value,observer:value,observer:after-null
- Perry: events: second:value,observer:value,observer:after-null
-
node-suite/worker_threads/broadcast-channel/post-message-missing— output mismatch- Node: post: TypeError ERR_MISSING_ARGS
- Perry: post: ok
-
node-suite/worker_threads/broadcast-channel/shared-array-buffer— output mismatch- Node: brand/identity: true false
- Perry: brand/identity: false false
-
node-suite/worker_threads/direct-message/handler-error— output mismatch- Node: direct: Error ERR_WORKER_MESSAGING_ERRORED
- Perry: Error: direct-handler-boom
-
node-suite/worker_threads/direct-message/transferables— output mismatch- Node: delivered: true true 2,4,6,8 true
- Perry: delivered: undefined undefined undefined false
-
node-suite/worker_threads/direct-message/validation— output mismatch- Node: missing id: Error ERR_WORKER_MESSAGING_FAILED
- Perry: missing id: resolved
-
node-suite/worker_threads/environment-data/builtin-snapshot— output mismatch- Node: worker brands: true true true
- Perry: worker brands: false false false
-
node-suite/worker_threads/environment-data/graph-snapshot— output mismatch- Node: graph: true true 11
- Perry: graph: false false missing
-
node-suite/worker_threads/environment-data/nested-inheritance— output mismatch- Node: levels: 0 1
- Perry: levels: missing missing
-
node-suite/worker_threads/environment-data/uncloneable-construction— output mismatch- Node: construct: DataCloneError 25
- Perry: construct: ok
-
node-suite/worker_threads/environment-data/worker-snapshot— output mismatch- Node: worker initial: 1 1,2
- Perry: worker initial: missing missing
-
node-suite/worker_threads/main-thread/export-surface— output mismatch- Node: BroadcastChannel true function
- Perry: BroadcastChannel true function
-
node-suite/worker_threads/main-thread/process-worker-event— output mismatch- Node: event observed: true
- Perry: event observed: false
-
node-suite/worker_threads/main-thread/process-worker-event-late-emit— output mismatch- Node: late emit: true true
- Perry: exit: 0
-
node-suite/worker_threads/main-thread/prototype-surface— output mismatch- Node: Worker postMessage true function undefined false
- Perry: Worker postMessage false undefined undefined undefined
-
node-suite/worker_threads/message-channel/constructor-call-rules— output mismatch- Node: brand: true true
- Perry: brand: true true
-
node-suite/worker_threads/message-channel/constructor-options— output mismatch- Node: none true true
- Perry: none false false
-
node-suite/worker_threads/message-channel/move-closed-validation— output mismatch- Node: closed: Error:ERR_CLOSED_MESSAGE_PORT
- Perry: closed: ok
-
node-suite/worker_threads/message-channel/move-context-filehandle-error— output mismatch- Node: transfer: ok true
- Perry: transfer: ok false
-
node-suite/worker_threads/message-channel/move-context-realm-brand— output mismatch- Node: realm brand: false MessagePort
- Perry: realm brand: true MessagePort
-
node-suite/worker_threads/message-port/clone-error-rollback— output mismatch- Node: post: DataCloneError 25
- Perry: post: ok
-
node-suite/worker_threads/message-port/close-callback-idempotent— output mismatch- Node: close events: port1-callback,port1-event,port2-event,second-callback
- Perry: close events: port1-event,port2-event
-
node-suite/worker_threads/message-port/close-callback-order— output mismatch- Node: first: sync,A,B,C
- Perry:
-
node-suite/worker_threads/message-port/close-dispatch-flush— output mismatch- Node: outside dispatch: empty
- Perry: outside dispatch: empty
-
node-suite/worker_threads/message-port/close-ordering— output mismatch- Node: events: message:before-close,port1-close,port2-close
- Perry: events: port1-close,port2-close
-
node-suite/worker_threads/message-port/closed-transfer-error-brand— output mismatch- Node: error: DataCloneError 25 true true DOMException
- Perry: transfer: ok
-
node-suite/worker_threads/message-port/custom-event-emit— output mismatch- Node: emit return: true
- Perry: emit return: unsupported
-
node-suite/worker_threads/message-port/custom-inspect-ref-state— output mismatch- Node: custom: function
- Perry: custom: undefined
-
node-suite/worker_threads/message-port/distinct-listener-order— output mismatch- Node: events: first:value,second:value,third:value
- Perry: events: third:value
-
node-suite/worker_threads/message-port/duplicate-transfer— output mismatch- Node: duplicate buffer: DataCloneError 25
- Perry: duplicate buffer: ok
-
node-suite/worker_threads/message-port/event-ports— output mismatch- Node: event ports: 1 true function
- Perry: event ports: 0 false undefined
-
node-suite/worker_threads/message-port/frozen-eventtarget-prototype— output mismatch- Node: frozen: true
- Perry: frozen: true
-
node-suite/worker_threads/message-port/listener-first-registration— output mismatch- Node: on+on: 2 1
- Perry: on+on: 0 unsupported
-
node-suite/worker_threads/message-port/listener-removal-once— output mismatch- Node: events: once:first,on:first,on:second
- Perry: events: on:first,on:second
-
node-suite/worker_threads/message-port/listener-scope— output mismatch- Node: events: second-message,close
- Perry: events:
-
node-suite/worker_threads/message-port/listener-validation— output mismatch- Node: on null: ok
- Perry: on null: ok
-
node-suite/worker_threads/message-port/listeners-while-closing— output mismatch- Node: closing port: ok,ok,ok,ok
- Perry: closing port: ok,ok,ok,ok
-
node-suite/worker_threads/message-port/max-listeners-remove-all— output mismatch- Node: methods: function function
- Perry: methods: undefined undefined
-
node-suite/worker_threads/message-port/messageevent-constructor— output mismatch- Node: event: message 1 worker-origin event-1
- Perry: event: undefined missing undefined undefined
-
node-suite/worker_threads/message-port/messageevent-defaults-coercion— output mismatch- Node: default message null null 0
- Perry: default undefined undefined undefined undefined undefined missing
-
node-suite/worker_threads/message-port/messageevent-iterables— output mismatch- Node: iterable: 1 2 true true
- Perry: iterable: 0 missing false false
-
node-suite/worker_threads/message-port/method-receivers— output mismatch- Node: postMessage undefined TypeError
- Perry: postMessage undefined ok
-
node-suite/worker_threads/message-port/node-event-target-surface— output mismatch- Node: methods: addListener:function,emit:function,eventNames:function,listenerCount:function,listeners:undefined,off:function,on:function,once:function,prependListener:undefined,prependOnceListener:undefined,rawListeners:undefined,removeAllListeners:function,removeListener:function
- Perry: methods: addListener:function,emit:undefined,eventNames:undefined,listenerCount:undefined,listeners:undefined,off:function,on:function,once:function,prependListener:undefined,prependOnceListener:undefined,rawListeners:undefined,removeAllListeners:undefined,removeListener:function
-
node-suite/worker_threads/message-port/off-pending-once— output mismatch- Node: counts: 1 0 0
- Perry: counts: unsupported unsupported 0
-
node-suite/worker_threads/message-port/on-listener-dedup— output mismatch- Node: first: first
- Perry: first:
-
node-suite/worker_threads/message-port/on-listener-event-scope— output mismatch- Node: events: message:value,close
- Perry: events:
-
node-suite/worker_threads/message-port/once-registry-after-fire— output mismatch- Node: before: 1
- Perry: before: unsupported
-
node-suite/worker_threads/message-port/onmessage-event— output mismatch- Node: event: message 7 true true 0
- Perry: event: message 7 true true missing
-
node-suite/worker_threads/message-port/onmessage-nonfunction— output mismatch- Node: before: function true 1
- Perry: before: function true unsupported
-
node-suite/worker_threads/message-port/post-message-missing— output mismatch- Node: post: TypeError ERR_MISSING_ARGS
- Perry: post: ok
-
node-suite/worker_threads/message-port/post-message-validation— output mismatch- Node: function: DataCloneError:25
- Perry: function: ok
-
node-suite/worker_threads/message-port/prototype-own-surface— output mismatch- Node: own names: close,constructor,hasRef,onmessage,onmessageerror,postMessage,ref,start,unref
- Perry: own names: close,constructor,hasRef,onmessage,onmessageerror,postMessage,ref,start,unref
-
node-suite/worker_threads/message-port/queued-before-peer-close— output mismatch- Node: message-first: message:first,message:second,close
- Perry:
-
node-suite/worker_threads/message-port/receive-after-start— output mismatch- Node: empty: undefined
- Perry: empty: undefined
-
node-suite/worker_threads/message-port/receive-fifo-validation— output mismatch- Node: initial: empty
- Perry: initial: empty
-
node-suite/worker_threads/message-port/ref-after-peer-close— output mismatch- Node: after peer close: false 2 function
- Perry: after peer close: true unsupported function
-
node-suite/worker_threads/message-port/ref-state— output mismatch- Node: initial: false
- Perry: initial: true
-
node-suite/worker_threads/message-port/self-and-closed-transfer— output mismatch- Node: self transfer: DataCloneError 25
- Perry: self transfer: ok
-
node-suite/worker_threads/message-port/tampered-listener-registry— output mismatch- Node: registry: 1 close,message,newListener,removeListener 0 0
- Perry: registry error: TypeError listenerCount is not a function
-
node-suite/worker_threads/message-port/transfer-during-close-flush— output mismatch- Node: deliveries: 2
- Perry: deliveries: 1
-
node-suite/worker_threads/message-port/transfer-iterables— output mismatch- Node: valid set: 0 true 7
- Perry: valid set: 4 false missing
-
node-suite/worker_threads/message-port/transfer-iterator-error— output mismatch- Node: same error: true iterator-boom
- Perry: post: ok
-
node-suite/worker_threads/message-port/transfer-iterator-shapes— output mismatch- Node: missing next: TypeError:ERR_INVALID_ARG_TYPE
- Perry: missing next: ok
-
node-suite/worker_threads/message-port/transfer-options— output mismatch- Node: detached: 0 0 0
- Perry: detached: 1 1 1
-
node-suite/worker_threads/message-port/transfer-state-validation— output mismatch- Node: source transfer: DataCloneError:25
- Perry: source transfer: ok
-
node-suite/worker_threads/message-port/transfer-target— output mismatch- Node: post: ok
- Perry: post: ok
-
node-suite/worker_threads/message-port/unread-transferred-port-close— output mismatch- Node: peer closed
- Perry:
-
node-suite/worker_threads/message-port/unref-delivery— output mismatch- Node: events: a,b,c
- Perry: events: a,b,c
-
node-suite/worker_threads/structured-clone/arraybuffer-clone— output mismatch- Node: clone shape: true true true
- Perry: clone shape: false false false
-
node-suite/worker_threads/structured-clone/arraybuffer-transfer— output mismatch- Node: detached: 0 0 0
- Perry: detached: 8 8 2
-
node-suite/worker_threads/structured-clone/builtin-types— output mismatch- Node: post: ok
- Perry: post: TypeError:
-
node-suite/worker_threads/structured-clone/cycles-and-aliases— output mismatch- Node: post: ok
- Perry: post: TypeError:
-
node-suite/worker_threads/structured-clone/detached-retransfer— output mismatch- Node: detached: 0 0
- Perry: detached: 8 8
-
node-suite/worker_threads/structured-clone/filehandle-transfer— output mismatch- Node: clone: DataCloneError 25 true
- Perry: clone: accepted true
-
node-suite/worker_threads/structured-clone/message-port-transfer— output mismatch- Node: transferred type: true
- Perry: transferred type: false
-
node-suite/worker_threads/structured-clone/multiple-shared-arraybuffers— output mismatch- Node: brands: true,true,true,true
- Perry: brands: false,false,false,false
-
node-suite/worker_threads/structured-clone/multiple-views-transfer— output mismatch- Node: source detached: 0 0 TypeError
- Perry: source detached: 16 16 16
-
node-suite/worker_threads/structured-clone/shared-array-buffer— output mismatch- Node: brand/identity: true false 8
- Perry: brand/identity: false false undefined
-
node-suite/worker_threads/structured-clone/transfer-rollback— output mismatch- Node: invalid after buffer: DataCloneError:25 8
- Perry: invalid after buffer: ok 8
-
node-suite/worker_threads/structured-clone/transfer-validation— output mismatch- Node: duplicate buffer: DataCloneError:25 8
- Perry: duplicate buffer: ok 8
-
node-suite/worker_threads/structured-clone/url-rejection— output mismatch- Node: port: DataCloneError:25
- Perry: port: ok
-
node-suite/worker_threads/transfer-markers/marker-privacy— output mismatch- Node: private clone mark: 0 value DataCloneError:25
- Perry: private clone mark: 0 value ok
-
node-suite/worker_threads/transfer-markers/marker-semantics— output mismatch- Node: primitive: undefined undefined false
- Perry: primitive: undefined undefined true
-
node-suite/worker_threads/transfer-markers/uncloneable-port-transfer— output mismatch- Node: transfer: ok
- Perry: transfer: ok
-
node-suite/worker_threads/transfer-markers/uncloneable-post— output mismatch- Node: root: DataCloneError:25
- Perry: root: Error:
-
node-suite/worker_threads/transfer-markers/untransferable-transfer— output mismatch- Node: buffer transfer: true DataCloneError:25 8
- Perry: buffer transfer: true ok 8
-
node-suite/worker_threads/web-locks/web-locks-callback-settlement— output mismatch- Node: sync: 42
- Perry: sync: 42
-
node-suite/worker_threads/worker-lifecycle/argv-base— output mismatch- Node: file: true true ["null","42"] no-error 0
- Perry: file: true false [] no-error 0
-
node-suite/worker_threads/worker-lifecycle/argv-options— output mismatch- Node: invalid option: throw TypeError ERR_INVALID_ARG_TYPE
- Perry: invalid entry: []
-
node-suite/worker_threads/worker-lifecycle/async-dispose— output mismatch- Node: method: function
- Perry: method: undefined
-
node-suite/worker_threads/worker-lifecycle/captured-output— output mismatch- Node: message: written
- Perry: worker-stdout
-
node-suite/worker_threads/worker-lifecycle/constructor-rollback— output mismatch- Node: name: TypeError:ERR_INVALID_ARG_TYPE 3 9,8,7
- Perry: name: created 3 9,8,7
-
node-suite/worker_threads/worker-lifecycle/constructor-validation— output mismatch- Node: uncloneable workerData: DataCloneError:25
- Perry: uncloneable workerData: ok
-
node-suite/worker_threads/worker-lifecycle/data-and-environment— output mismatch- Node: parent detached: 0 0
- Perry: parent detached: 4 4
-
node-suite/worker_threads/worker-lifecycle/env-isolation— output mismatch- Node: worker: parent-value worker-change worker-value no-error
- Perry: worker: parent-value worker-change worker-value no-error
-
node-suite/worker_threads/worker-lifecycle/env-options— output mismatch- Node: invalid env: TypeError ERR_INVALID_ARG_TYPE
- Perry: invalid env: ok
-
node-suite/worker_threads/worker-lifecycle/error-ordering— output mismatch- Node: error: TypeError controlled worker failure
- Perry: TypeError: controlled worker failure
-
node-suite/worker_threads/worker-lifecycle/eval-error— output mismatch- Node: events: online,error:TypeError:eval-boom,exit:1
- Perry: TypeError: eval-boom
-
node-suite/worker_threads/worker-lifecycle/eval-stack-getter-error— output mismatch- Node: error: Error:stack-boom:true
- Perry: Error: stack-boom
-
node-suite/worker_threads/worker-lifecycle/eval-syntax-error— output mismatch- Node: error: true:SyntaxError
- Perry: construct: Error
-
node-suite/worker_threads/worker-lifecycle/eval-unserializable-error— output mismatch- Node: error: object:false:true:[object Object]:undefined:undefined
- Perry: Uncaught exception: [object] (bits=0x7FFD04F8D6D77C90)
-
node-suite/worker_threads/worker-lifecycle/eventemitter-listeners— output mismatch- Node: events: online-once,online-on,once:first,on:first,on:second,exit:0
- Perry: events: online-once,online-on,once:first,on:first,on:second,exit:0
-
node-suite/worker_threads/worker-lifecycle/execargv-options— output mismatch- Node: parent: ["--experimental-strip-types"]
- Perry: parent: []
-
node-suite/worker_threads/worker-lifecycle/exit-code-explicit— output mismatch- Node: explicit: exit:5
- Perry:
-
node-suite/worker_threads/worker-lifecycle/exit-code-property— output mismatch- Node: exitCode: message:set,exit:7
- Perry: exitCode: message:set,exit:0
-
node-suite/worker_threads/worker-lifecycle/exit-listener-error— output mismatch- Node: events: exit,uncaught:exit-listener-boom
- Perry: Error: exit-listener-boom
-
node-suite/worker_threads/worker-lifecycle/exit-unreachable-code— output mismatch- Node: events: none
- Perry:
-
node-suite/worker_threads/worker-lifecycle/file-url-unicode— output mismatch- Node: message: unicode-ok:url-π-worker.cjs
- Perry: construct: Error
-
node-suite/worker_threads/worker-lifecycle/filehandle-construction-rollback— output mismatch- Node: clone rollback: DataCloneError:25 true 5:const
- Perry: clone rollback: created true 5:const
-
node-suite/worker_threads/worker-lifecycle/filehandle-map-set— output mismatch- Node: construction: ok true
- Perry: construction: ok false
-
node-suite/worker_threads/worker-lifecycle/filehandle-name-validation— output mismatch- Node: construction: TypeError ERR_INVALID_ARG_TYPE false
- Perry: construction: ok false
-
node-suite/worker_threads/worker-lifecycle/filehandle-orphan-rollback— output mismatch- Node: construction: DataCloneError 25 false
- Perry: construction: ok false
-
node-suite/worker_threads/worker-lifecycle/filehandle-orphan-transfer— output mismatch- Node: construction: ok true
- Perry: construction: ok false
-
node-suite/worker_threads/worker-lifecycle/filehandle-workerdata-alias— output mismatch- Node: parent detached: true
- Perry: parent detached: false
-
node-suite/worker_threads/worker-lifecycle/filename-validation— output mismatch- Node: undefined TypeError ERR_INVALID_ARG_TYPE
- Perry: undefined Error
-
node-suite/worker_threads/worker-lifecycle/global-postmessage-override— output mismatch- Node: message: echo:value
- Perry: message: echo:value
-
node-suite/worker_threads/worker-lifecycle/inheritance-brands— output mismatch- Node: main port: true true
- Perry: main port: true false
-
node-suite/worker_threads/worker-lifecycle/internal-thread-flag— output mismatch- Node: main: false false true
- Perry: main: false false true
-
node-suite/worker_threads/worker-lifecycle/listener-validation— output mismatch- Node: on null: TypeError ERR_INVALID_ARG_TYPE
- Perry: on null: ok
-
node-suite/worker_threads/worker-lifecycle/multiple-worker-ids— output mismatch- Node: parent positive: true
- Perry: parent positive: true
-
node-suite/worker_threads/worker-lifecycle/natural-exit-terminate— output mismatch- Node: events: online,message:natural,exit:0,terminate:undefined
- Perry: events: online,message:natural,exit:0,terminate:1
-
node-suite/worker_threads/worker-lifecycle/node-options-env-validation— output mismatch- Node: construct: Error ERR_WORKER_INVALID_EXEC_ARGV
- Perry: construct: ok
-
node-suite/worker_threads/worker-lifecycle/option-validation-precedence— output mismatch- Node: argv before env: Error argv-coercion
- Perry: argv before env: ok
-
node-suite/worker_threads/worker-lifecycle/parent-port-onmessage— output mismatch- Node: values: {"type":"message","data":4,"target":true,"source":true},undefined,null,0
- Perry: values: missing
-
node-suite/worker_threads/worker-lifecycle/parent-port-ref— output mismatch- Node: states: false false false false true
- Perry: states: unsupported false unsupported false unsupported
-
node-suite/worker_threads/worker-lifecycle/post-exit-diagnostics— output mismatch- Node: utilization: active,idle,utilization number,number,number true
- Perry: utilization: active,idle,utilization number,number,number false
-
node-suite/worker_threads/worker-lifecycle/post-exit-safe-methods— output mismatch- Node: exit: 0 -1 null
- Perry: exit: 0 1
-
node-suite/worker_threads/worker-lifecycle/post-message-transfer— output mismatch- Node: source detached: 0 0
- Perry: source detached: 4 4
-
node-suite/worker_threads/worker-lifecycle/postmessage-errors— output mismatch- Node: function: DataCloneError 25
- Perry: function: ok
-
node-suite/worker_threads/worker-lifecycle/postmessage-missing— output mismatch- Node: post: TypeError ERR_MISSING_ARGS
- Perry: post: ok
-
node-suite/worker_threads/worker-lifecycle/postmessage-shared-array-buffer— output mismatch- Node: worker: true 1,2,3,4 1,8,3,4
- Perry: worker: false 1,2,3,4 1,8,3,4
-
node-suite/worker_threads/worker-lifecycle/postmessage-url-rejection— SIGSEGV (exit 139)- Perry died after printing 1 line(s); Node exited 0.
- Last Perry line: ./run_parity_tests.sh: line 118: 13782 Segmentation fault: 11 $TIMEOUT_CMD "$seconds" "$@"
-
node-suite/worker_threads/worker-lifecycle/process-env-descriptors— output mismatch- Node: descriptors: missing-flags:TypeError:ERR_INVALID_OBJECT_DEFINE_PROPERTY|accessor:TypeError:ERR_INVALID_OBJECT_DEFINE_PROPERTY|valid:ok:42:true
- Perry: descriptors: missing-flags:ok:undefined:false|accessor:ok:undefined:false|valid:ok:undefined:true
-
node-suite/worker_threads/worker-lifecycle/process-unsupported— output mismatch- Node: writable: true true
- Perry: writable: true true
-
node-suite/worker_threads/worker-lifecycle/queued-port-receive— output mismatch- Node: received: queued 2 true
- Perry: received: missing missing true
-
node-suite/worker_threads/worker-lifecycle/resource-limits-metadata— output mismatch- Node: main: {}
- Perry: main: {}
-
node-suite/worker_threads/worker-lifecycle/share-env— output mismatch- Node: worker initial: initial
- Perry: worker initial: initial
-
node-suite/worker_threads/worker-lifecycle/share-env-tree— output mismatch- Node: C observations: null main
- Perry: C observations: b main
-
node-suite/worker_threads/worker-lifecycle/terminate-idempotent— output mismatch- Node: promise identity: false
- Perry: promise identity: false
-
node-suite/worker_threads/worker-lifecycle/thread-metadata— output mismatch- Node: parent initial: true parity-worker
- Perry: parent initial: true parity-worker
-
node-suite/worker_threads/worker-lifecycle/thread-name-defaults— output mismatch- Node: missing WorkerThread WorkerThread
- Perry: missing
-
node-suite/worker_threads/worker-lifecycle/unreferenced-arraybuffer-transfer— output mismatch- Node: detached: 0
- Perry: detached: 8
-
node-suite/worker_threads/worker-lifecycle/unsupported-paths— output mismatch- Node: bare relative TypeError ERR_WORKER_PATH
- Perry: bare relative Error
-
node-suite/worker_threads/worker-lifecycle/url-eval-validation— output mismatch- Node: construct: TypeError ERR_INVALID_ARG_VALUE
- Perry: construct: Error
-
node-suite/worker_threads/worker-lifecycle/worker-created-buffers-after-exit— output mismatch- Node: brands: true true
- Perry: brands: false false
-
node-suite/worker_threads/worker-lifecycle/worker-created-port-after-exit— output mismatch- Node: port: true queued-before-exit
- Perry: port: false empty
-
node-suite/worker_threads/worker-lifecycle/worker-eventemitter-surface— output mismatch- Node: methods: addListener:function,emit:function,eventNames:function,getMaxListeners:function,listenerCount:function,listeners:function,off:function,on:function,once:function,prependListener:function,prependOnceListener:function,rawListeners:function,removeAllListeners:function,removeListener:function,setMaxListeners:function
- Perry: methods: addListener:undefined,emit:undefined,eventNames:undefined,getMaxListeners:undefined,listenerCount:undefined,listeners:undefined,off:function,on:function,once:function,prependListener:undefined,prependOnceListener:undefined,rawListeners:undefined,removeAllListeners:undefined,removeListener:undefined,setMaxListeners:undefined
-
node-suite/worker_threads/worker-lifecycle/workerdata-alias-view— output mismatch- Node: parent: 4 4 4660
- Perry: parent: 4 4 4660
-
node-suite/worker_threads/worker-lifecycle/workerdata-builtins— output mismatch- Node: brands: true true true true bigint true
- Perry: brands: true false false true bigint false
-
node-suite/worker_threads/worker-lifecycle/workerdata-cycle— SIGSEGV (exit 139)- Perry died after printing 1 line(s); Node exited 0.
- Last Perry line: ./run_parity_tests.sh: line 118: 25447 Segmentation fault: 11 $TIMEOUT_CMD "$seconds" "$@"
-
node-suite/worker_threads/worker-lifecycle/workerdata-defaults— output mismatch- Node: omitted: false undefined false undefined
- Perry: omitted: false object true undefined
-
node-suite/worker_threads/worker-lifecycle/workerdata-multiple-ports— output mismatch- Node: ports: true true true
- Perry: ports: false false true
-
node-suite/worker_threads/worker-lifecycle/workerdata-port-alias— output mismatch- Node: port alias: true true true
- Perry: port alias: false false false
-
node-suite/worker_threads/worker-lifecycle/workerdata-port-map— output mismatch- Node: map: map true true none
- Perry: map: map false false none
-
node-suite/worker_threads/worker-lifecycle/workerdata-port-set— output mismatch- Node: set: set true true none
- Perry: set: set false false none
-
node-suite/worker_threads/worker-lifecycle/workerdata-port-surface— output mismatch- Node: surface: true addListener:function,off:function,on:function,once:function,postMessage:function
- Perry: surface: false addListener:function,off:undefined,on:function,once:undefined,postMessage:function
-
node-suite/worker_threads/worker-lifecycle/workerdata-port-transfer— output mismatch- Node: worker port: true function
- Perry: worker port: false function
-
node-suite/worker_threads/worker-lifecycle/workerdata-shared-array-buffer— output mismatch- Node: worker: true 1,2,3,4 9,2,3,4
- Perry: worker: false 1,2,3,4 9,2,3,4
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
parityCompatibility gap with Node.js, ECMAScript, or the supported ecosystemCompatibility gap with Node.js, ECMAScript, or the supported ecosystem
Activity
fix(runtime): stabilize inherited lookup across GC (#6763)
fix(worker_threads): preserve structured clone values (#7091)
proggeramlug commentedon Aug 12, 2026
Scoping note from the #7988 /
perry/threadrealm-isolation work (PR #7994).Almost none of this issue is downstream of the realm-isolation bugs
(#7988, #7981, #7954, and the newly filed #8001 / #8002 / #8003). Sampling the
167 failures, they are overwhelmingly missing surface, not realm aliasing:
BroadcastChannel— missingERR_MISSING_ARGSthrows, missingERR_INVALID_THISbrand checks, missingDataCloneError,once-listenersemantics,
MessageEventmetadata, structured clone of typed arrays.MessagePort/MessageChannel— missingERR_CLOSED_MESSAGE_PORT,close-callback ordering and idempotence, transfer-list validation.
environment-data/direct-message—getEnvironmentData/setEnvironmentData/postMessageToThreadlargely absent.main-thread/prototype-surface—Worker.prototype.postMessageis not on theprototype at all.
That is a structured-clone + error-taxonomy + Web-ish-API project, not a GC
or realm-isolation project.
node:worker_threadsis also a differentthreading surface from
perry/thread: it needs per-worker realms behind anexplicit message port, whereas
perry/threadships closures and deep-copiesvalues.
The realm-isolation work is a precondition, not a subset: a
Workerrunningon an OS thread inherits every entry in the #8001-#8003 inventory, so building
the surface on today's process-global intrinsics would reproduce those bugs at a
higher level. But fixing them closes approximately zero of the 167.
Recommendation: keep this as an umbrella and split it by subsystem — per the
repo's "granular per-gap issues, not umbrellas" convention — into roughly
BroadcastChannel(surface + error taxonomy + clone),MessagePort/MessageChannel+ transfer lists,environment-data+postMessageToThread,Workersurface andprocessworker events,DataCloneError, typed arrays, SAB identity),each with its own failing-test list from
test-parity/node-suite/worker_threads/. Each is independently shippable; thecurrent single list of 167 is not a task anyone can pick up.
fix(worker_threads): preserve channel listener semantics (#8327)
fix(worker_threads): track MessagePort ref state (#8347)
proggeramlug commentedon Aug 18, 2026
Closed after #8347 was merged. The historical worker_threads baseline in this umbrella ticket has been addressed incrementally; any remaining or newly discovered gaps should be tracked in focused follow-up issues.