Skip to content

revert: back out #8671 (breaks the pbkdf2 callback), re-land #8764 - #8798

Merged
proggeramlug merged 3 commits into
mainfrom
fix/revert-8671-pbkdf2
Aug 25, 2026
Merged

revert: back out #8671 (breaks the pbkdf2 callback), re-land #8764#8798
proggeramlug merged 3 commits into
mainfrom
fix/revert-8671-pbkdf2

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

main was red on perry-stdlib: crypto::random::tests::native_dispatch_pbkdf2_value_form_fires_callback fails with "pbkdf2 callback must fire".

Bisected to #8671 (landed in the #8797 squash, cf2a508d5), full-suite RUST_TEST_THREADS=1 cargo test -p perry-stdlib --lib:

98ecdc582 (after #8791)   120 passed; 0 failed
726f6e96e (after #8796)   120 passed; 0 failed
cf2a508d5 (after #8797)   119 passed; 1 failed   <- #8764 + #8671
726f6e96e + #8764 alone   120 passed; 0 failed
726f6e96e + #8671 alone   119 passed; 1 failed   <- attributed

This backs out the #8797 squash and re-applies #8764 alone, which is clean. #8671 is reopened for the author with the reproduction above — the failure is behavioural, not a test-harness artifact: crypto.pbkdf2 in its callback form stops invoking the callback, so a caller would hang.

The test only fails in the full suite, not filtered in isolation.

Ralph Kuepper added 3 commits August 24, 2026 23:50
Resolve widget, lifecycle, and timer callback pointers from GC-scanned storage at invocation time so Reactor closures cannot retain stale addresses after an evacuating collection.\n\nFixes #8734
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 13 minutes.

View limit details

Limit details: You’ve used all 8 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 50c469a8-504b-41fd-94ab-01fad8d44fa7

📥 Commits

Reviewing files that changed from the base of the PR and between cf2a508 and 7d9a747.

📒 Files selected for processing (138)
  • changelog.d/8671-async-hooks-parity.md
  • crates/perry-api-manifest/src/entries/part_4.rs
  • crates/perry-codegen/src/expr/calls/crypto_misc.rs
  • crates/perry-codegen/src/expr/env_clones.rs
  • crates/perry-codegen/src/expr/instance_misc1.rs
  • crates/perry-codegen/src/expr/mod.rs
  • crates/perry-codegen/src/expr/property_get.rs
  • crates/perry-codegen/src/expr/this_super_call.rs
  • crates/perry-codegen/src/expr/write_barrier.rs
  • crates/perry-codegen/src/ext_registry.rs
  • crates/perry-codegen/src/lower_call/builtin.rs
  • crates/perry-codegen/src/lower_call/native_table/http_client.rs
  • crates/perry-codegen/src/lower_call/native_table/http_server.rs
  • crates/perry-codegen/src/lower_call/native_table/net_events.rs
  • crates/perry-codegen/src/lower_call/new_helpers.rs
  • crates/perry-codegen/src/runtime_decls/stdlib_ffi/language_core.rs
  • crates/perry-codegen/src/runtime_decls/stdlib_ffi/streams_events.rs
  • crates/perry-codegen/src/runtime_decls/stdlib_ffi/third_party.rs
  • crates/perry-ext-events/src/lib.rs
  • crates/perry-ext-events/src/module_iterators.rs
  • crates/perry-ext-events/src/module_on.rs
  • crates/perry-ext-events/src/target_helpers.rs
  • crates/perry-ext-events/src/tests.rs
  • crates/perry-ext-http/src/lib.rs
  • crates/perry-ext-http/src/pending_dispatch.rs
  • crates/perry-ext-http/src/server/server.rs
  • crates/perry-ext-http/src/server/server/deferred_events.rs
  • crates/perry-ext-http/src/tests.rs
  • crates/perry-ext-net/src/adopt.rs
  • crates/perry-ext-net/src/dispatch.rs
  • crates/perry-ext-net/src/gc_roots.rs
  • crates/perry-ext-net/src/handle_exports.rs
  • crates/perry-ext-net/src/ipc.rs
  • crates/perry-ext-net/src/lib.rs
  • crates/perry-ext-net/src/lifecycle.rs
  • crates/perry-ext-net/src/provider_lifecycle.rs
  • crates/perry-ext-net/src/server_state.rs
  • crates/perry-ext-net/src/task_spawn.rs
  • crates/perry-ext-net/src/tests.rs
  • crates/perry-ext-net/src/tls.rs
  • crates/perry-ext-zlib/src/stream.rs
  • crates/perry-hir/src/lower/stmt.rs
  • crates/perry-hir/src/lower_decl/body_stmt.rs
  • crates/perry-runtime/src/array/subclass.rs
  • crates/perry-runtime/src/async_context.rs
  • crates/perry-runtime/src/async_hooks.rs
  • crates/perry-runtime/src/async_hooks/test_support.rs
  • crates/perry-runtime/src/child_process/emitter.rs
  • crates/perry-runtime/src/child_process/reactor.rs
  • crates/perry-runtime/src/child_process/reactor/windows_kill_tests.rs
  • crates/perry-runtime/src/closure/dispatch/value_call.rs
  • crates/perry-runtime/src/dgram.rs
  • crates/perry-runtime/src/dgram/listeners.rs
  • crates/perry-runtime/src/dgram/ops.rs
  • crates/perry-runtime/src/dns.rs
  • crates/perry-runtime/src/dns/ffi.rs
  • crates/perry-runtime/src/fs/callbacks.rs
  • crates/perry-runtime/src/fs/dir_glob_watch/watch.rs
  • crates/perry-runtime/src/fs/filehandle.rs
  • crates/perry-runtime/src/gc/roots.rs
  • crates/perry-runtime/src/module_require.rs
  • crates/perry-runtime/src/node_stream.rs
  • crates/perry-runtime/src/node_stream_constructors.rs
  • crates/perry-runtime/src/node_stream_constructors/builders.rs
  • crates/perry-runtime/src/node_stream_constructors/pipeline.rs
  • crates/perry-runtime/src/node_stream_dispatch.rs
  • crates/perry-runtime/src/node_submodules/blob.rs
  • crates/perry-runtime/src/node_submodules/fs_promises.rs
  • crates/perry-runtime/src/node_vm.rs
  • crates/perry-runtime/src/object/class_handles.rs
  • crates/perry-runtime/src/object/class_registry.rs
  • crates/perry-runtime/src/object/class_registry/parent_static.rs
  • crates/perry-runtime/src/object/class_registry/parent_static/unstamped_tests.rs
  • crates/perry-runtime/src/object/class_registry/prototype_objects.rs
  • crates/perry-runtime/src/object/descriptors.rs
  • crates/perry-runtime/src/object/field_get_set.rs
  • crates/perry-runtime/src/object/field_get_set/get_field_by_name.rs
  • crates/perry-runtime/src/object/field_get_set/get_field_by_name_async.rs
  • crates/perry-runtime/src/object/field_get_set/get_field_by_name_tail.rs
  • crates/perry-runtime/src/object/field_get_set/ic_miss.rs
  • crates/perry-runtime/src/object/instanceof.rs
  • crates/perry-runtime/src/object/native_module.rs
  • crates/perry-runtime/src/object/native_module/async_hooks_exports.rs
  • crates/perry-runtime/src/object/native_module_dispatch/dispatch_a_c.rs
  • crates/perry-runtime/src/object/nm_namespace_hooks.rs
  • crates/perry-runtime/src/object/reflect_support.rs
  • crates/perry-runtime/src/object/tests.rs
  • crates/perry-runtime/src/object/to_string_tag.rs
  • crates/perry-runtime/src/os/signal.rs
  • crates/perry-runtime/src/promise/assimilate.rs
  • crates/perry-runtime/src/promise/async_step.rs
  • crates/perry-runtime/src/promise/microtasks.rs
  • crates/perry-runtime/src/promise/mod.rs
  • crates/perry-runtime/src/promise/scanners.rs
  • crates/perry-runtime/src/promise/then.rs
  • crates/perry-runtime/src/proxy.rs
  • crates/perry-runtime/src/proxy/reflect.rs
  • crates/perry-runtime/src/symbol.rs
  • crates/perry-runtime/src/symbol/get.rs
  • crates/perry-runtime/src/symbol/properties.rs
  • crates/perry-runtime/src/timer.rs
  • crates/perry-runtime/src/value/addr_class.rs
  • crates/perry-stdlib/Cargo.toml
  • crates/perry-stdlib/src/async_local_storage.rs
  • crates/perry-stdlib/src/common/dispatch.rs
  • crates/perry-stdlib/src/common/dispatch/emitter_als.rs
  • crates/perry-stdlib/src/common/dispatch/init.rs
  • crates/perry-stdlib/src/common/dispatch/method_dispatch.rs
  • crates/perry-stdlib/src/common/dispatch/property_dispatch.rs
  • crates/perry-stdlib/src/common/dispatch_http.rs
  • crates/perry-stdlib/src/crypto/kdf.rs
  • crates/perry-stdlib/src/crypto/keys.rs
  • crates/perry-stdlib/src/crypto/prime.rs
  • crates/perry-stdlib/src/crypto/random.rs
  • crates/perry-stdlib/src/events/constructors.rs
  • crates/perry-stdlib/src/fetch/mod.rs
  • crates/perry-stdlib/src/readline/mod.rs
  • crates/perry-stdlib/src/readline/test_support.rs
  • crates/perry-stdlib/src/tls.rs
  • crates/perry-stdlib/src/tls/event_pump.rs
  • crates/perry-stdlib/src/webcrypto/aes.rs
  • crates/perry-stdlib/src/webcrypto/digest.rs
  • crates/perry-stdlib/src/webcrypto/hmac.rs
  • crates/perry-stdlib/src/webcrypto/util.rs
  • crates/perry-stdlib/src/worker_threads.rs
  • crates/perry-stdlib/src/worker_threads/worker_pump.rs
  • crates/perry-stdlib/src/zlib.rs
  • crates/perry/src/commands/compile/build_cache.rs
  • crates/perry/src/commands/compile/collect_modules.rs
  • crates/perry/src/commands/compile/optimized_libs/driver.rs
  • crates/perry/src/commands/compile/optimized_libs/freshness.rs
  • crates/perry/src/commands/compile/optimized_libs/tests.rs
  • crates/perry/src/commands/compile/types.rs
  • docs/src/api/reference.md
  • scripts/gc_runtime_root_holders.json
  • scripts/raw_handle_debt_files.txt
  • scripts/string_payload_access_baseline.txt
  • scripts/thread_local_cold_allowlist.json

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug
proggeramlug merged commit f46932a into main Aug 25, 2026
20 checks passed
@proggeramlug
proggeramlug deleted the fix/revert-8671-pbkdf2 branch August 25, 2026 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant