Skip to content

Instantly share code, notes, and snippets.

@felipehummel
Last active August 29, 2015 13:59
Show Gist options
  • Save felipehummel/10505379 to your computer and use it in GitHub Desktop.
Save felipehummel/10505379 to your computer and use it in GitHub Desktop.
New Relic CURL PHP bug
<?php
/**
* php --version
PHP 5.4.25-1+sury.org~precise+2 (cli) (built: Feb 12 2014 10:45:30)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
**/
$headers = [];
function doCurl($url, $headers)
{
//$headers = [];
$cookies = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$curlErrorCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$headerSent = curl_getinfo($ch, CURLINFO_HEADER_OUT);
echo "\nHEADER SENT:\n".$headerSent."\n---------\n";
$curlError = curl_error($ch);
curl_close($ch);
return array($result, $curlErrorCode, $curlError);
}
for ($i=0; $i < 10; $i++) {
doCurl('http://www.google.com', $headers);
echo "OK\n";
}
// OUTPUT with newrelic.cross_application_tracer.enabled=false in newrelic.ini
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
---------
OK
// OUTPUT with line 14 commented, that is, we always use the same $headers array in curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// newrelic.cross_application_tracer.enabled=true
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxRVWQNQDgcEAVBSAwQOXgcFFB8EBw8RVT8=
---------
OK
// OUTPUT with line 14 uncommented, that is, we always use A NEW EMPTY $headers array in curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// newrelic.cross_application_tracer.enabled=true
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
HEADER SENT:
GET / HTTP/1.1
Host: www.google.com
Accept: */*
X-NewRelic-ID: VwcOV1dRGwEIUFFbBQI=
X-NewRelic-Transaction: PxQGAARQXAtRAlUGDwcHV1dTFB8EBw8RVT8=
---------
OK
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment