diff --git a/app/config/collections.php b/app/config/collections.php index 21d1b91171..aa574eb9dd 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -2090,7 +2090,7 @@ $collections = [ '$id' => 'stderr', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 16384, + 'size' => 1000000, 'signed' => true, 'required' => false, 'default' => '', @@ -2101,7 +2101,7 @@ $collections = [ '$id' => 'stdout', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 16384, + 'size' => 1000000, 'signed' => true, 'required' => false, 'default' => '', @@ -2207,7 +2207,7 @@ $collections = [ '$id' => 'stdout', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 16384, + 'size' => 1000000, 'signed' => true, 'required' => false, 'default' => null, @@ -2218,7 +2218,7 @@ $collections = [ '$id' => 'stderr', 'type' => Database::VAR_STRING, 'format' => '', - 'size' => 16384, + 'size' => 1000000, 'signed' => true, 'required' => false, 'default' => null, diff --git a/app/executor.php b/app/executor.php index 2e25821b77..34cd9d344a 100644 --- a/app/executor.php +++ b/app/executor.php @@ -279,8 +279,8 @@ App::post('/v1/runtimes') $endTime = \time(); $container = array_merge($container, [ 'status' => 'ready', - 'stdout' => \utf8_encode($stdout), - 'stderr' => \utf8_encode($stderr), + 'stdout' => \mb_strcut($stdout, 0, 1000000), // Limit to 1MB + 'stderr' => \mb_strcut($stderr, 0, 1000000), // Limit to 1MB 'startTime' => $startTime, 'endTime' => $endTime, 'duration' => $endTime - $startTime, @@ -508,12 +508,12 @@ App::post('/v1/execution') $functionStatus = ($statusCode >= 200 && $statusCode < 300) ? 'completed' : 'failed'; Console::success('Function executed in ' . $executionTime . ' seconds, status: ' . $functionStatus); - + $execution = [ 'status' => $functionStatus, 'statusCode' => $statusCode, - 'stdout' => \utf8_encode(\mb_substr($stdout, -16384)), - 'stderr' => \utf8_encode(\mb_substr($stderr, -16384)), + 'stdout' => \mb_strcut($stdout, 0, 1000000), // Limit to 1MB + 'stderr' => \mb_strcut($stderr, 0, 1000000), // Limit to 1MB 'time' => $executionTime, ]; @@ -733,4 +733,4 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo } }); -$http->start(); \ No newline at end of file +$http->start(); diff --git a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php index e26f93ad34..9ae65e0771 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomServerTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomServerTest.php @@ -513,7 +513,7 @@ class FunctionsCustomServerTest extends Scope $this->assertStringContainsString('http', $execution['body']['stdout']); $this->assertStringContainsString('PHP', $execution['body']['stdout']); $this->assertStringContainsString('8.0', $execution['body']['stdout']); - // $this->assertStringContainsString('êä', $execution['body']['stdout']); // tests unknown utf-8 chars + $this->assertStringContainsString('êä', $execution['body']['stdout']); // tests unknown utf-8 chars $this->assertEquals('', $execution['body']['stderr']); $this->assertLessThan(0.500, $execution['body']['time']); @@ -601,7 +601,7 @@ class FunctionsCustomServerTest extends Scope $this->assertStringContainsString('http', $execution['body']['stdout']); $this->assertStringContainsString('PHP', $execution['body']['stdout']); $this->assertStringContainsString('8.0', $execution['body']['stdout']); - // $this->assertStringContainsString('êä', $execution['body']['sdtout']); // tests unknown utf-8 chars + $this->assertStringContainsString('êä', $execution['body']['stdout']); // tests unknown utf-8 chars $this->assertLessThan(0.500, $execution['body']['time']); return $data; diff --git a/tests/resources/functions/php-large/index.php b/tests/resources/functions/php-large/index.php index dd111af766..8bd0de5e60 100644 --- a/tests/resources/functions/php-large/index.php +++ b/tests/resources/functions/php-large/index.php @@ -10,6 +10,6 @@ return function ($request, $response) { 'APPWRITE_FUNCTION_RUNTIME_VERSION' => $request['env']['APPWRITE_FUNCTION_RUNTIME_VERSION'], 'APPWRITE_FUNCTION_EVENT' => $request['env']['APPWRITE_FUNCTION_EVENT'], 'APPWRITE_FUNCTION_EVENT_DATA' => $request['env']['APPWRITE_FUNCTION_EVENT_DATA'], - 'UNICODE_TEST' => "êä" // TODO: Re-add unicode test to FunctionsCustomServerTest.php + 'UNICODE_TEST' => "êä" ]); }; diff --git a/tests/resources/functions/php/index.php b/tests/resources/functions/php/index.php index dd111af766..8bd0de5e60 100644 --- a/tests/resources/functions/php/index.php +++ b/tests/resources/functions/php/index.php @@ -10,6 +10,6 @@ return function ($request, $response) { 'APPWRITE_FUNCTION_RUNTIME_VERSION' => $request['env']['APPWRITE_FUNCTION_RUNTIME_VERSION'], 'APPWRITE_FUNCTION_EVENT' => $request['env']['APPWRITE_FUNCTION_EVENT'], 'APPWRITE_FUNCTION_EVENT_DATA' => $request['env']['APPWRITE_FUNCTION_EVENT_DATA'], - 'UNICODE_TEST' => "êä" // TODO: Re-add unicode test to FunctionsCustomServerTest.php + 'UNICODE_TEST' => "êä" ]); };