Cloud Run tidak menangkap isyarat: 11 selepas menaik taraf Laravel 9
P粉739886290
2023-08-31 09:23:32
<p>Saya meningkatkan projek saya kepada Laravel 9 menggunakan PHP8. Tetapi memandangkan saya menggunakan Cloud Run, saya secara rawak mendapat ralat berikut dalam log Cloud Run: </p>
<p><kod> Isyarat tidak ditangkap: 11, pid=17, tid=17, fault_addr=4294967296017.</code></p>
<p>因此查询因 503 错误而中止:<kod>DAPATKAN 503 898 oktet 682 msChrome 109 https://...</kod></p>
<p>这是我的 php-custom.ini :</p>
<pre class="brush:php;toolbar:false;">max_execution_time = 500
upload_max_filesize = 40J
saiz_pos_maks = 40M
had_memori = 800M
max_file_uploads = 100</pre>
<p>还有我的 opcache.ini :</p>
<pre class="brush:php;toolbar:false;">[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.max_accelerated_files=32531
opcache.memory_consumption=256
opcache.max_wasted_percentage=10
opcache.interned_strings_buffer=64
opcache.fast_shutdown=1
opcache.jit_buffer_size=100M
opcache.jit=1235</pre>
<p>还有我的 dockerfile:</p>
<pre class="brush:php;toolbar:false;">FROM php:8.2.3-apache sebagai asas
# Argumen ditakrifkan dalam docker-compose.yml
pengguna ARG
ARG uid
WORKDIR /apl
# Pasang kebergantungan PHP
JALANKAN kemas kini apt-get && apt-get install -y
libpng-dev
zlib1g-dev
libxml2-dev
libzip-dev
libonig-dev
zip
buka zip
setempat
pdftk
&& sed -i -e 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen
&& locale-gen
&& docker-php-ext-configure gd
&& docker-php-ext-install -j$(nproc) gd
&& docker-php-ext-install pdo_mysql
&& docker-php-ext-install mysqli
&& docker-php-ext-install zip
&& docker-php-source padam
&& docker-php-ext-configure intl
&& docker-php-ext-install intl
&& docker-php-ext-install opcache
&& docker-php-ext-install bcmath
# Env
ENV LC_ALL fr_FR.UTF-8
ENV LANG fr_FR.UTF-8
BAHASA ENV fr_FR:ms
# Salin projek, vhost.conf, konfigurasi php dan pasang komposer
SALINAN . .
SALIN docker/vhost.conf /etc/apache2/sites-available/000-default.conf
SALIN docker/custom.ini $PHP_INI_DIR/conf.d/custom.ini
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
JALANKAN sed -i 's/80/${PORT}/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf
# Tambah kebenaran
JALANKAN mkdir -p /app/vendor
mkdir -p /app/storage/logs
&& useradd -G www-data,root -u $uid -d /home/$user $user
&& mkdir -p /home/$user/.composer
&& chown -R $user:$user /home/$user
&& chown -R $user:$user /app
&& tulis semula a2enmod
&& chmod +x docker/startup-dev.sh
&& chmod +x docker/startup-prod.sh
DEDAHKAN 8080
DARI pangkalan sebagai pembangunan
JALANKAN kemas kini apt-get && apt-get install -y nano
ENTRYPOINT ["docker/startup-dev.sh"]
CMD ["apache2-foreground"]
PENGGUNA $pengguna
DARI pangkalan sebagai pengeluaran
SALIN docker/opcache.ini $PHP_INI_DIR/conf.d/opcache.ini
RUN composer clearcache && komposer install --optimize-autoloader --no-dev
ENTRYPOINT ["docker/startup-prod.sh"]
CMD ["apache2-foreground"]
PENGGUNA $user</pre>
<p>我不知道如何重现该错误,因为它非常随机,但我注意到该该错误,因为它非常随机,但我注意到该错误是在出厑误是在厑从知道问题是否是由我的 opcache 配置引起的。我的云运行服务有 1 个 CPU 和 2 个 GO 内存。</p>
<p>我不知道如何解决这个问题。</p>
<p><strong>编辑</strong></p>
<p>当我收到错误时,我添加了 2 个图表:</p>
Saya menyelesaikan masalah saya. Ini tiada kaitan dengan Cloud Run. Masalahnya ialah konfigurasi JIT. Saya menukar ini:
kepada
Menurut ini: https://php.watch/versions/8.0/JIT#jit-opcache-jit-values Saya juga mencuba:
Jika anda tidak mahu menggunakan 1255, ia akan berfungsi juga. Tetapi saya menggunakan
1255
kerana dalam permintaan tarik ini saya melihat banyak ujian unit dengan konfigurasi 1255.