diff --git a/lib/datadog/di/probe_notifier.rb b/lib/datadog/di/probe_notifier.rb index b26976d783d..e49d7613071 100644 --- a/lib/datadog/di/probe_notifier.rb +++ b/lib/datadog/di/probe_notifier.rb @@ -65,7 +65,7 @@ module ProbeNotifier } elsif probe.line? { - lines: { + lines: snapshot && { probe.line_no => {locals: serializer.serialize_vars(snapshot)}, }, } diff --git a/lib/datadog/di/probe_notifier_worker.rb b/lib/datadog/di/probe_notifier_worker.rb index 98aa7164dc7..2e48ce92baf 100644 --- a/lib/datadog/di/probe_notifier_worker.rb +++ b/lib/datadog/di/probe_notifier_worker.rb @@ -43,7 +43,7 @@ def start def stop(timeout = 1) wake.signal - wake.join(timeout) + thread.join(timeout) end private @@ -53,6 +53,7 @@ def stop(timeout = 1) attr_reader :status_client attr_reader :snapshot_client attr_reader :wake + attr_reader :thread DIAGNOSTICS_PATH = '/debugger/v1/diagnostics' INPUT_PATH = '/debugger/v1/input' diff --git a/spec/datadog/di/integration/instrumentation_spec.rb b/spec/datadog/di/integration/instrumentation_spec.rb index 234453a03fc..4d91b072b09 100644 --- a/spec/datadog/di/integration/instrumentation_spec.rb +++ b/spec/datadog/di/integration/instrumentation_spec.rb @@ -6,6 +6,10 @@ require_relative 'instrumentation_integration_test_class' end + after do + component.shutdown! + end + let(:settings) do settings = Datadog::Core::Configuration::Settings.new settings.internal_dynamic_instrumentation.enabled = true @@ -14,7 +18,7 @@ end let(:hook_manager) do - Datadog::DI::HookManager.new(settings) + component.hook_manager end let(:defined_probes) do @@ -26,8 +30,7 @@ end let(:remote_processor) do - Datadog::DI::RemoteProcessor.new( - settings, hook_manager, defined_probes, installed_probes) + component.remote_processor end let(:agent_settings) do @@ -66,6 +69,7 @@ it 'invokes probe' do remote_processor.process(probe_rc_spec) + expect(Datadog::DI.component.probe_notifier_worker).to receive(:add_snapshot).once.and_call_original expect(InstrumentationIntegrationTestClass.new.test_method).to eq(42) end