Closed willsilvano closed 2 years ago
Thank you for reporting it - I'll take a look.
Also experiencing the same, on all systems. The opcache.preload
is indeed why it crashes.
Interesting and useful logs from php-fpm:
Jun 08 12:06:40 APEtienne php-fpm[48794]: Elastic APM PHP Tracer [PID: 48794] 2021-06-08 12:06:40.342752+02:00 [ERROR] [Auto-Instrumentation] [TransactionForExtensionRequest.php:286] [getMandatoryServerVarElement] $_SERVER does not contain `REQUEST_METHOD' key. {"namespace":"Elastic\\Apm\\Impl\\AutoInstrument","class":"TransactionForExtensionRequest","stacktrace":[{"class":"Elastic\\Apm\\Impl\\Log\\Backend","function":"log","file":"EnabledLoggerProxy.php","line":80,"this":{"type":"Elastic\\Apm\\Impl\\Log\\Backend","object_ID":35,"object_hash":"00000000449f1cc20000000036b1530c"},"args":[2,"$_SERVER does not contain `REQUEST_METHOD' key",[],286,"getMandatoryServerVarElement",{"category":"Auto-Instrumentation","namespace":"Elastic\\Apm\\Impl\\AutoInstrument","fqClassName":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","srcCodeFile":"\/srv\/mossaino\/vendor\/elastic\/apm-agent\/src\/ElasticApm\/Impl\/AutoInstrument\/TransactionForExtensionRequest.php","inheritedData":null,"context":[],"backend":{}},null,1]},{"class":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","function":"log","file":"TransactionForExtensionRequest.php","line":287,"this":{"type":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","object_ID":17,"object_hash":"00000000449f1cf00000000036b1530c"},"args":["$_SERVER does not contain `REQUEST_METHOD' key"]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"getMandatoryServerVarElement","file":"TransactionForExtensionRequest.php","line":124,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":["REQUEST_METHOD"]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"discoverHttpRequestData","file":"TransactionForExtensionRequest.php","line":76,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"beginTransaction","file":"TransactionForExtensionRequest.php","line":68,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"__construct","file":"PhpPartFacade.php","line":75,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[{"isRecording":true,"providedDependencies":{"clock":null,"configRawSnapshotSource":null,"eventSink":null,"logSink":null},"config":{"enabled":true,"environment":"apetienne","logLevel":null,"logLevelStderr":null,"logLevelSyslog":null,"serverTimeout":30000,"serviceName":"Mossaino","serviceVersion":null,"transactionMaxSpans":500,"transactionSampleRate":1,"verifyServerCert":true,"optNameToParsedValue":{"enabled":true,"environment":"apetienne","log_level":null,"log_level_stderr":null,"log_level_syslog":null,"server_timeout":30000,"service_name":"Mossaino","service_version":null,"transaction_max_spans":500,"transaction_sample_rate":1,"verify_server_cert":true}}},1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"__construct","file":"PhpPartFacade.php","line":109,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","object_ID":1,"object_hash":"00000000449f1ce00000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"bootstrap","args":[4,1623146800335455]}]}
Jun 08 12:06:40 APEtienne php-fpm[48794]: Elastic APM PHP Tracer [PID: 48794] 2021-06-08 12:06:40.342987+02:00 [ERROR] [Auto-Instrumentation] [TransactionForExtensionRequest.php:286] [getMandatoryServerVarElement] $_SERVER does not contain `HTTP_HOST' key. {"namespace":"Elastic\\Apm\\Impl\\AutoInstrument","class":"TransactionForExtensionRequest","stacktrace":[{"class":"Elastic\\Apm\\Impl\\Log\\Backend","function":"log","file":"EnabledLoggerProxy.php","line":80,"this":{"type":"Elastic\\Apm\\Impl\\Log\\Backend","object_ID":35,"object_hash":"00000000449f1cc20000000036b1530c"},"args":[2,"$_SERVER does not contain `HTTP_HOST' key",[],286,"getMandatoryServerVarElement",{"category":"Auto-Instrumentation","namespace":"Elastic\\Apm\\Impl\\AutoInstrument","fqClassName":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","srcCodeFile":"\/srv\/mossaino\/vendor\/elastic\/apm-agent\/src\/ElasticApm\/Impl\/AutoInstrument\/TransactionForExtensionRequest.php","inheritedData":null,"context":[],"backend":{}},null,1]},{"class":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","function":"log","file":"TransactionForExtensionRequest.php","line":287,"this":{"type":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","object_ID":39,"object_hash":"00000000449f1cc60000000036b1530c"},"args":["$_SERVER does not contain `HTTP_HOST' key"]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"getMandatoryServerVarElement","file":"TransactionForExtensionRequest.php","line":131,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":["HTTP_HOST"]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"discoverHttpRequestData","file":"TransactionForExtensionRequest.php","line":76,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"beginTransaction","file":"TransactionForExtensionRequest.php","line":68,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"__construct","file":"PhpPartFacade.php","line":75,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[{"isRecording":true,"providedDependencies":{"clock":null,"configRawSnapshotSource":null,"eventSink":null,"logSink":null},"config":{"enabled":true,"environment":"apetienne","logLevel":null,"logLevelStderr":null,"logLevelSyslog":null,"serverTimeout":30000,"serviceName":"Mossaino","serviceVersion":null,"transactionMaxSpans":500,"transactionSampleRate":1,"verifyServerCert":true,"optNameToParsedValue":{"enabled":true,"environment":"apetienne","log_level":null,"log_level_stderr":null,"log_level_syslog":null,"server_timeout":30000,"service_name":"Mossaino","service_version":null,"transaction_max_spans":500,"transaction_sample_rate":1,"verify_server_cert":true}}},1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"__construct","file":"PhpPartFacade.php","line":109,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","object_ID":1,"object_hash":"00000000449f1ce00000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"bootstrap","args":[4,1623146800335455]}]}
Jun 08 12:06:40 APEtienne php-fpm[48794]: Elastic APM PHP Tracer [PID: 48794] 2021-06-08 12:06:40.343100+02:00 [ERROR] [Auto-Instrumentation] [TransactionForExtensionRequest.php:286] [getMandatoryServerVarElement] $_SERVER does not contain `REQUEST_URI' key. {"namespace":"Elastic\\Apm\\Impl\\AutoInstrument","class":"TransactionForExtensionRequest","stacktrace":[{"class":"Elastic\\Apm\\Impl\\Log\\Backend","function":"log","file":"EnabledLoggerProxy.php","line":80,"this":{"type":"Elastic\\Apm\\Impl\\Log\\Backend","object_ID":35,"object_hash":"00000000449f1cc20000000036b1530c"},"args":[2,"$_SERVER does not contain `REQUEST_URI' key",[],286,"getMandatoryServerVarElement",{"category":"Auto-Instrumentation","namespace":"Elastic\\Apm\\Impl\\AutoInstrument","fqClassName":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","srcCodeFile":"\/srv\/mossaino\/vendor\/elastic\/apm-agent\/src\/ElasticApm\/Impl\/AutoInstrument\/TransactionForExtensionRequest.php","inheritedData":null,"context":[],"backend":{}},null,1]},{"class":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","function":"log","file":"TransactionForExtensionRequest.php","line":287,"this":{"type":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","object_ID":39,"object_hash":"00000000449f1cc60000000036b1530c"},"args":["$_SERVER does not contain `REQUEST_URI' key"]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"getMandatoryServerVarElement","file":"TransactionForExtensionRequest.php","line":143,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":["REQUEST_URI"]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"discoverHttpRequestData","file":"TransactionForExtensionRequest.php","line":76,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"beginTransaction","file":"TransactionForExtensionRequest.php","line":68,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"__construct","file":"PhpPartFacade.php","line":75,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[{"isRecording":true,"providedDependencies":{"clock":null,"configRawSnapshotSource":null,"eventSink":null,"logSink":null},"config":{"enabled":true,"environment":"apetienne","logLevel":null,"logLevelStderr":null,"logLevelSyslog":null,"serverTimeout":30000,"serviceName":"Mossaino","serviceVersion":null,"transactionMaxSpans":500,"transactionSampleRate":1,"verifyServerCert":true,"optNameToParsedValue":{"enabled":true,"environment":"apetienne","log_level":null,"log_level_stderr":null,"log_level_syslog":null,"server_timeout":30000,"service_name":"Mossaino","service_version":null,"transaction_max_spans":500,"transaction_sample_rate":1,"verify_server_cert":true}}},1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"__construct","file":"PhpPartFacade.php","line":109,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","object_ID":1,"object_hash":"00000000449f1ce00000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"bootstrap","args":[4,1623146800335455]}]}
Jun 08 12:06:40 APEtienne php-fpm[48794]: Elastic APM PHP Tracer [PID: 48794] 2021-06-08 12:06:40.343209+02:00 [ERROR] [Auto-Instrumentation] [TransactionForExtensionRequest.php:297] [discoverHttpName] Failed to discover path part of URL to derive transaction name - using default transaction name. {"DEFAULT_NAME":"Unnamed transaction","namespace":"Elastic\\Apm\\Impl\\AutoInstrument","class":"TransactionForExtensionRequest","stacktrace":[{"class":"Elastic\\Apm\\Impl\\Log\\Backend","function":"log","file":"EnabledLoggerProxy.php","line":80,"this":{"type":"Elastic\\Apm\\Impl\\Log\\Backend","object_ID":35,"object_hash":"00000000449f1cc20000000036b1530c"},"args":[2,"Failed to discover path part of URL to derive transaction name - using default transaction name",{"DEFAULT_NAME":"Unnamed transaction"},297,"discoverHttpName",{"category":"Auto-Instrumentation","namespace":"Elastic\\Apm\\Impl\\AutoInstrument","fqClassName":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","srcCodeFile":"\/srv\/mossaino\/vendor\/elastic\/apm-agent\/src\/ElasticApm\/Impl\/AutoInstrument\/TransactionForExtensionRequest.php","inheritedData":null,"context":[],"backend":{}},null,1]},{"class":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","function":"log","file":"TransactionForExtensionRequest.php","line":300,"this":{"type":"Elastic\\Apm\\Impl\\Log\\EnabledLoggerProxy","object_ID":39,"object_hash":"00000000449f1cc60000000036b1530c"},"args":["Failed to discover path part of URL to derive transaction name - using default transaction name",{"DEFAULT_NAME":"Unnamed transaction"}]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"discoverHttpName","file":"TransactionForExtensionRequest.php","line":77,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"beginTransaction","file":"TransactionForExtensionRequest.php","line":68,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","function":"__construct","file":"PhpPartFacade.php","line":75,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\TransactionForExtensionRequest","object_ID":3,"object_hash":"00000000449f1ce20000000036b1530c"},"args":[{"isRecording":true,"providedDependencies":{"clock":null,"configRawSnapshotSource":null,"eventSink":null,"logSink":null},"config":{"enabled":true,"environment":"apetienne","logLevel":null,"logLevelStderr":null,"logLevelSyslog":null,"serverTimeout":30000,"serviceName":"Mossaino","serviceVersion":null,"transactionMaxSpans":500,"transactionSampleRate":1,"verifyServerCert":true,"optNameToParsedValue":{"enabled":true,"environment":"apetienne","log_level":null,"log_level_stderr":null,"log_level_syslog":null,"server_timeout":30000,"service_name":"Mossaino","service_version":null,"transaction_max_spans":500,"transaction_sample_rate":1,"verify_server_cert":true}}},1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"__construct","file":"PhpPartFacade.php","line":109,"this":{"type":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","object_ID":1,"object_hash":"00000000449f1ce00000000036b1530c"},"args":[1623146800335455]},{"class":"Elastic\\Apm\\Impl\\AutoInstrument\\PhpPartFacade","function":"bootstrap","args":[4,1623146800335455]}]}
Basically, the Elastic\Apm\Impl\Log\Backend
attempts to look for $_SERVER['REQUEST_METHOD']
which does not exist in preload. Additionally, the Elastic\Apm\Impl\AutoInstrument
attempts $_SERVER['HTTP_HOST']
and $_SERVER['REQUEST_URI']
which also crash.
So this should be the same problem as described in #411 and #402.
@SergeyKleyman Is anyone working on this, or is it up for grabs?
I didn't have a chance to have a deep look into this so if you would like to help you are very welcome.
A (not-so-quick) quick summary:
TransactionForExtensionRequest
has detection for cli, but it needs improving to include the complicated opcache.preload
mode, because the PHP_SAPI
value might be something like fpm-fcgi
for this. I managed to somewhat reliably check this by looking at some $_SERVER
values (most notably: which values don't exist).TransactionForExtensionRequest->discoverHttpRequestData()
method is called regardless of the isCliScript
-value. This needs to be checked as well, since all of the desired values do not exist for preload. I am not sure why this is called on cli methods. Except for maybe setting $_SERVER
it does nothing useful. Excluding this does not seem hard either.[DEBUG] [Ext-API] [elastic_apm_API.c:140] [elasticApmInterceptCallsToInternalMethod] Entered: className: `pdo'; methodName: `exec'
[DEBUG] [Ext-API] [elastic_apm_API.c:171] [elasticApmInterceptCallsToInternalMethod] Exiting: resultCode: resultSuccess (0)
[TRACE] [Bootstrap] [BootstrapStageLogger.php:61] [autoloadCodeForClass] Entered with fqClassName: `Elastic\Apm\Impl\AutoInstrument\Registration'
[TRACE] [Bootstrap] [BootstrapStageLogger.php:83] [autoloadCodeForClass] About to execute require `/home/ebruines/.local/src/apm-agent-php/src/ElasticApm/Impl/AutoInstrument/Registration.php' ...
[DEBUG] [Ext-API] [elastic_apm_API.c:140] [elasticApmInterceptCallsToInternalMethod] Entered: className: `pdo'; methodName: `query'
[DEBUG] [Ext-API] [elastic_apm_API.c:171] [elasticApmInterceptCallsToInternalMethod] Exiting: resultCode: resultSuccess (0)
[DEBUG] [Ext-API] [elastic_apm_API.c:140] [elasticApmInterceptCallsToInternalMethod] Entered: className: `pdostatement'; methodName: `execute'
[DEBUG] [Ext-API] [elastic_apm_API.c:171] [elasticApmInterceptCallsToInternalMethod] Exiting: resultCode: resultSuccess (0)
[DEBUG] [Ext-API] [elastic_apm_API.c:180] [elasticApmInterceptCallsToInternalFunction] Entered: functionName: `curl_init'
[DEBUG] [Ext-API] [elastic_apm_API.c:203] [elasticApmInterceptCallsToInternalFunction] Exiting: resultCode: resultSuccess (0). interceptRegistrationId: 3.
[DEBUG] [Ext-API] [elastic_apm_API.c:180] [elasticApmInterceptCallsToInternalFunction] Entered: functionName: `curl_setopt'
[DEBUG] [Ext-API] [elastic_apm_API.c:203] [elasticApmInterceptCallsToInternalFunction] Exiting: resultCode: resultSuccess (0). interceptRegistrationId: 4.
[DEBUG] [Ext-API] [elastic_apm_API.c:180] [elasticApmInterceptCallsToInternalFunction] Entered: functionName: `curl_setopt_array'
[DEBUG] [Ext-API] [elastic_apm_API.c:203] [elasticApmInterceptCallsToInternalFunction] Exiting: resultCode: resultSuccess (0). interceptRegistrationId: 5.
[DEBUG] [Ext-API] [elastic_apm_API.c:180] [elasticApmInterceptCallsToInternalFunction] Entered: functionName: `curl_copy_handle'
[DEBUG] [Ext-API] [elastic_apm_API.c:203] [elasticApmInterceptCallsToInternalFunction] Exiting: resultCode: resultSuccess (0). interceptRegistrationId: 6.
[DEBUG] [Ext-API] [elastic_apm_API.c:180] [elasticApmInterceptCallsToInternalFunction] Entered: functionName: `curl_exec'
[DEBUG] [Ext-API] [elastic_apm_API.c:203] [elasticApmInterceptCallsToInternalFunction] Exiting: resultCode: resultSuccess (0). interceptRegistrationId: 7.
[DEBUG] [Ext-API] [elastic_apm_API.c:180] [elasticApmInterceptCallsToInternalFunction] Entered: functionName: `curl_close'
[DEBUG] [Ext-API] [elastic_apm_API.c:203] [elasticApmInterceptCallsToInternalFunction] Exiting: resultCode: resultSuccess (0). interceptRegistrationId: 8.
[DEBUG] [Bootstrap] [BootstrapStageLogger.php:166] [bootstrap] Successfully completed bootstrap sequence
[DEBUG] [Util] [util_for_PHP.c:159] [callPhpFunction] Exiting: resultCode: resultSuccess (0)
[DEBUG] [C-to-PHP] [tracer_PHP_part.c:81] [bootstrapTracerPhpPart] Exiting: resultCode: resultSuccess (0)
[DEBUG] [Lifecycle] [lifecycle.c:233] [elasticApmRequestInit] Exiting: resultCode: resultSuccess (0)
[DEBUG] [Lifecycle] [lifecycle.c:312] [elasticApmRequestShutdown] Entered
[DEBUG] [C-to-PHP] [tracer_PHP_part.c:90] [shutdownTracerPhpPart] Entered
[DEBUG] [Util] [util_for_PHP.c:125] [callPhpFunction] Entered: phpFunctionName: `\Elastic\Apm\Impl\AutoInstrument\PhpPartFacade::shutdown', argsCount: 0
I am expecting it to start logging Starting shutdown sequence...
but it does not. This is where the process crashes. Which is kinda weird, seeing that in normal cli-mode, it does reliably log this (and then ending the transaction, sending it to the APM Server, etc.).
Looking at the tracer_PHP_part.c:104
code, it ideally should log resultCode
after this. On normal cli operations, this happens. But for opcache.preload operations, it completely and utterly crashed and does not continue executing any more C-code.
I can be wrong here, (this is just guesswork!), maybe that after successfully preloading the file the php-fpm part does some kind of cleanup and this extension tries to reference something it cannot? I can imagine the $_SERVER
variable not existing after the opcache.preload process is over, so perhaps something over at the C-side of things is also dereferenced.
Uncommenting the call to ELASTIC_APM_PHP_PART_SHUTDOWN_FUNC
in tracer_PHP_part.c
seems to "fix' the crashing, but it does prevent info from being sent to the APM Server. I think we could live with that for opcache.preload type of operations; i.e. if we could make this shutdown conditional.
sorry but this is resolved, right? :-)
@AlexanderWert is it resolved?
@skob @kamil-karkus This issue is resolved in the sense that when Opache preload is enabled then Elastic APM PHP agent disables itself so it doesn't crash the application but there are no monitoring results. I've created a follow up issue to implement support for Opache preload - #617
Describe the bug Conflict between Opache preload and the PHP Agent in a project that is configured with Docker, using the image php:7.4-fpm.
To Reproduce Steps to reproduce the behavior:
Inside the Dockerfile I have a script that installs Filebeat, Metricbeat and the PHP Agent:
At the end of my Dockefile I have an entrypoint, with the following code:
When the application starts, it's the log:
As you can see, at the end of the preloader, the error occurs:
Inside my opcache.ini file I have the following lines:
The project is only working when I do one of the following:
Expected behavior
The project is expected to start using the preload and the PHP Agent.