joyent/node — Issue #2667: missing translator for node_dtrace_http_*_request_t types
Author: wesolows
Created: 2012-02-02 00:52:33+00:00
State: open

Following the change in e142fe2b, the node provider declares two separate types for HTTP client and server requests. However, the node.d library contains only a single translator, for the now obsolete node_dtrace_http_request_t type. This allows it to work correctly with older node binaries, but will generate errors of the form

dtrace: invalid probe specifier node57257:::http-client-request { trace(args[0]->url); }: in action list: failed to resolve native type for args[0]

when (and only when) one of the fields of a relevant translated structure is referenced in an enabling within a newer node binary.

The correct fix is to have four translators in the library: from the obsolete node_dtrace_http_request_t to each of the new node_http_request_{client,server}_t, and two "identity" translators from node_dtrace_http_{client,server}_request_t to node_http_{client_server}_request_t. This will also allow for future changes to the format of the internal client structure.