Bug #76446 [Com]: zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc.

From: Date: Wed, 13 Jun 2018 09:02:36 +0000
Subject: Bug #76446 [Com]: zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-215675@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=76446&edit=1 ID: 76446 Comment by: spam2 at rhsoft dot net Reported by: spam2 at rhsoft dot net Summary: zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc. Status: Closed Type: Bug Package: Reproducible crash PHP Version: master-Git-2018-06-11 (Git) Block user comment: N Private report: N New Comment: this one is indeed fixed now bu topcache obviously ha still terrible problems given that with opcache disabled the complete testsuite runs without any warning hell, how can that lead to Duplicate column name 'pal_field1' /** * Ziel-Tabelle neu anlegen * * @param bool $only_if_not_exists * @param bool $tmp * @return void * @access private */ private function create_clear_table($only_if_not_exists=false, $tmp=false): void { /** Wenn angegeben abrechen falls Tabelle existiert */ if($only_if_not_exists) { if($this->cl_api->db->table_exists($this->get_table_name($tmp))) { return; } } /** Datenfeld-Array generieren */ $field_array = [ ['name'=>'pal_id'], ['name'=>'pal_kat', 'type'=>'varchar', 'length'=>255, 'unsigned'=>1] ]; for($i=1; $i<=$this->maxfield; $i++) { if($i == 4 || $i == 6 || $i == 12 || $i == 13) { $type = 'text'; } else { $type = 'varchar'; } $field_array[] = ['name'=>"pal_field{$i}", 'type'=>$type, 'length'=>255, 'unsigned'=>1]; } $field_array[] = ['name'=>'pal_checksum', 'type'=>'varchar', 'length'=>255, 'unsigned'=>1]; $field_array[] = ['name'=>'pal_timestamp', 'type'=>'int', 'length'=>10, 'unsigned'=>1]; /** Tabelle erzeugen und wenn bereits vorhanden im Vorfeld loeschen */ $this->cl_api->db->create_table ( /**$name*/$this->get_table_name($tmp), /**$field_array*/$field_array, /**$key_array*/ [ 'pal_key' => ['type'=>'key', 'fields'=>['pal_kat']], 'pal_fulltext' => ['type'=>'fulltext', 'fields'=>['pal_field2', 'pal_field3', 'pal_field4', 'pal_field5', 'pal_field6', 'pal_field12']], 'import_key' => ['type'=>'unique', 'fields'=>[$this->artikel_nr_field, 'pal_checksum']], ], /**$drop_if_exists*/1 ); } DATABASE-ERROR 1060: localhost/autotest.php - /cms/cms/modules/pal/api_pal.php line 567 (parent call: /cms/cms/modules/pal/api_pal.php on line 645): create table cl_autotest_pal_zsp_stock_tmp (pal_id mediumint(7) unsigned not null auto_increment, pal_kat varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null d! efault '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not null default '', pal_field1 varchar(255) not n - Duplicate column name 'pal_field1' - 127.0.0.1 Previous Comments: ------------------------------------------------------------------------ [2018-06-13 07:17:13] laruence@php.net Automatic comment on behalf of laruence@gmail.com Revision: http://git.php.net/?p=php-src.git;a=commit;h=609385bbf8fc82f334778bdfef5e16b7a3bd72c6 Log: Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)-&gt;gc)). ------------------------------------------------------------------------ [2018-06-13 07:09:15] laruence@php.net > However, in this case we are not able to prove that the ROPE_ADD will not generate an error > (e.g. array to string conversion warning). this is checked in may_throw , I think make ROPE_END having side-affect is a safe way for 7.3, we could seek more aggressive way for 7.4 I am going to commit the fix, thanks ------------------------------------------------------------------------ [2018-06-12 22:27:42] cmb@php.net > "just mark ROPE_END as having side-effects with a FIXME that > this may be improved" don't help anybody […] Please try “disable-ROPE_END-dce.patch”. ------------------------------------------------------------------------ [2018-06-12 22:27:06] cmb@php.net The following patch has been added/updated: Patch Name: disable-ROPE_END-dce Revision: 1528842426 URL: https://bugs.php.net/patch-display.php?bug=76446&patch=disable-ROPE_END-dce&revision=1528842426 ------------------------------------------------------------------------ [2018-06-12 21:47:39] spam2 at rhsoft dot net whatever optimization it was - it's not worth the trouble - frankly half of my codebase segfaults without the slightest chance to make any workarounds because it segfaults long before any code is executed and so even trigger_error(__FILE__ . ' ' . __LINE__) spread around source files don't help becaus eit never get executed "just mark ROPE_END as having side-effects with a FIXME that this may be improved" don't help anybody - i can't even build a binary because as long as the test-suite crashes the rpmbuild is stopped for good reasons and all my gdb-stuff was with the intermediate binary after the build crashed ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=76446 -- Edit this bug report at https://bugs.php.net/bug.php?id=76446&edit=1

« previous php.bugs (#215675) next »