Open stokesman opened 1 year ago
I often have wp-now running for days and after a while—I think usually > 48 hours
Wow! We definitely didn't test this scenario 😊 That's awesome!
Anyway, it’s a pretty small bother given how quick it is to spin up another instance. Still I thought the report might be appreciated.
Appreciate the report. There are probably a variety of memory leaks we'll eventually need to solve. We can keep this open as a collecting ground.
First step would be to figure out whether the memory leak comes from php-wasm or wp-now. I worry it's the former, but the latter would be easier to fix.
Edit: Maybe it's both – there are a few related PRs:
I have been seeing this error as well recently. As I am developing a new plugin, I often (sometimes multiple times a day) get 'Out of Memory' errors in the browser and 'Maximum call stack size exceeded' in the CLI logs. Though sometime it's runs fine for the whole day.
Problem is, I can not consistently reproduce the crash. It happens during the course of me updating code, reloading, using the site, etc. But, not typically associated with me introducing an error in my code. Most of the time, I simply restart the server (wp-now start) and reload the existing tab, which works fine.
I often have wp-now running for days and after a while—I think usually > 48 hours—I get something like the following:
Fatal error: Out of memory (allocated 2097152) (tried to allocate 65536 bytes) in /var/www/html/wp-includes/rest-api/endpoints/class-wp-rest-controller.php on line 388
After that I can't recover the instance. I'm not sure what info I can provide to help illuminate the cause. I tracked down the debug.log in
~/.wp-now/…
but not sure the output before the out of memory error is related.debug.log portion
```log [08-Aug-2023 20:29:16 UTC] PHP Fatal error: Uncaught TypeError: property_exists(): Argument #1 ($object_or_class) must be of type object|string, array given in /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php:2427 Stack trace: #0 /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php(2427): property_exists(Array, 'Name') #1 [internal function]: WP_SQLite_Translator->{closure}(Array, 0) #2 /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php(2430): array_filter(Array, Object(Closure), 1) #3 /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php(2384): WP_SQLite_Translator->strip_sqlite_system_tables(Array) #4 /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php(1381): WP_SQLite_Translator->get_information_schema_query('SELECT TABLE_NA...') #5 /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php(736): WP_SQLite_Translator->execute_select() #6 /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php(594): WP_SQLite_Translator->execute_mysql_query('SELECT TABLE_NA...') #7 /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-db.php(282): WP_SQLite_Translator->query('SELECT TABLE_NA...') #8 /var/www/html/wp-includes/class-wpdb.php(3099): WP_SQLite_DB->query('SELECT TABLE_NA...') #9 /var/www/html/wp-admin/includes/class-wp-site-health.php(3394): wpdb->get_results('SELECT TABLE_NA...', 'OBJECT_K') #10 /var/www/html/wp-admin/includes/class-wp-site-health.php(2469): WP_Site_Health->should_suggest_persistent_object_cache() #11 /var/www/html/wp-admin/includes/class-wp-site-health.php(194): WP_Site_Health->get_test_persistent_object_cache() #12 /var/www/html/wp-admin/includes/class-wp-site-health.php(3044): WP_Site_Health->perform_test(Array) #13 /var/www/html/wp-includes/class-wp-hook.php(308): WP_Site_Health->wp_cron_scheduled_check() #14 /var/www/html/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters('', Array) #15 /var/www/html/wp-includes/plugin.php(565): WP_Hook->do_action(Array) #16 /var/www/html/wp-cron.php(188): do_action_ref_array('wp_site_health_...', Array) #17 {main} thrown in /var/www/html/wp-content/plugins/sqlite-database-integration/wp-includes/sqlite/class-wp-sqlite-translator.php on line 2427 [09-Aug-2023 00:17:39 UTC] PHP Fatal error: Out of memory (allocated 2097152) (tried to allocate 32768 bytes) in /var/www/html/wp-admin/includes/ajax-actions.php on line 2065 ```Anyway, it’s a pretty small bother given how quick it is to spin up another instance. Still I thought the report might be appreciated.
I love using this compared to wp-env. Awesome work on it!