-
Notifications
You must be signed in to change notification settings - Fork 1k
Open
Labels
samplesIssues that are directly related to samples.Issues that are directly related to samples.
Description
I'm having trouble using Spanner Emulator with PHP so to investigate the problem I configured my Spanner Emulator instance so that it works when running queries from the command line. Then I cloned this repository, configured the code to run on my emulator instance, and run the quickstart.php file. It returned the following stack trace where on line 4 you can see the stack size problem:
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1756808553.589133 7237 call_credentials.c:168] GRPC_PHP: call credentials plugin function - begin
I0000 00:00:1756808553.589553 7237 call_credentials.c:171] GRPC_PHP: call credentials plugin function - end
PHP Fatal error: Uncaught Error: Maximum call stack size of 68719427584 bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? in /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/CredentialsWrapper.php:244
Stack trace:
#0 [internal function]: Google\ApiCore\CredentialsWrapper->Google\ApiCore\{closure}()
#1 /home/marcobuschini/src/php-docs-samples/spanner/vendor/grpc/grpc/src/lib/UnaryCall.php(45): Grpc\Call->startBatch()
#2 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/grpc-gcp/src/GCPUnaryCall.php(48): Grpc\UnaryCall->start()
#3 /home/marcobuschini/src/php-docs-samples/spanner/vendor/grpc/grpc/src/lib/BaseStub.php(295): Grpc\Gcp\GCPUnaryCall->start()
#4 /home/marcobuschini/src/php-docs-samples/spanner/vendor/grpc/grpc/src/lib/BaseStub.php(545): Grpc\BaseStub->Grpc\{closure}()
#5 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/Transport/GrpcTransport.php(267): Grpc\BaseStub->_simpleRequest()
#6 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/GapicClientTrait.php(664): Google\ApiCore\Transport\GrpcTransport->startUnaryCall()
#7 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/Middleware/CredentialsWrapperMiddleware.php(60): Google\Cloud\Spanner\V1\Gapic\SpannerGapicClient->Google\ApiCore\{closure}()
#8 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/Middleware/FixedHeaderMiddleware.php(67): Google\ApiCore\Middleware\CredentialsWrapperMiddleware->__invoke()
#9 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/Middleware/RetryMiddleware.php(94): Google\ApiCore\Middleware\FixedHeaderMiddleware->__invoke()
#10 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/Middleware/RequestAutoPopulationMiddleware.php(73): Google\ApiCore\Middleware\RetryMiddleware->__invoke()
#11 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/Middleware/OptionsFilterMiddleware.php(60): Google\ApiCore\Middleware\RequestAutoPopulationMiddleware->__invoke()
#12 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/GapicClientTrait.php(630): Google\ApiCore\Middleware\OptionsFilterMiddleware->__invoke()
#13 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-spanner/src/V1/Gapic/SpannerGapicClient.php(774): Google\Cloud\Spanner\V1\Gapic\SpannerGapicClient->startCall()
#14 [internal function]: Google\Cloud\Spanner\V1\Gapic\SpannerGapicClient->createSession()
#15 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-core/src/ExponentialBackoff.php(97): call_user_func_array()
#16 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-core/src/GrpcRequestWrapper.php(134): Google\Cloud\Core\ExponentialBackoff->execute()
#17 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-core/src/GrpcTrait.php(79): Google\Cloud\Core\GrpcRequestWrapper->send()
#18 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-spanner/src/Connection/Grpc.php(864): Google\Cloud\Spanner\Connection\Grpc->send()
#19 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-spanner/src/Operation.php(620): Google\Cloud\Spanner\Connection\Grpc->createSession()
#20 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-spanner/src/Database.php(2236): Google\Cloud\Spanner\Operation->createSession()
#21 /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/cloud-spanner/src/Database.php(1678): Google\Cloud\Spanner\Database->selectSession()
#22 /home/marcobuschini/src/php-docs-samples/spanner/quickstart.php(46): Google\Cloud\Spanner\Database->execute()
#23 {main}
thrown in /home/marcobuschini/src/php-docs-samples/spanner/vendor/google/gax/src/CredentialsWrapper.php on line 244
Running on PHP version:
PHP 8.3.6 (cli) (built: Jul 14 2025 18:30:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans
Running on Linux (the same happens running on WSL):
Linux marcobuschini-VirtualBox 6.14.0-28-generic #28~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 25 10:47:01 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
Metadata
Metadata
Assignees
Labels
samplesIssues that are directly related to samples.Issues that are directly related to samples.