Здравствуйте.
Возникла следующая проблема:
Авторизованные пользователи на сайте не могут просмотреть страницу товара.
В логах:
SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row";i:1;s:6683:
"#0 /home/artxenia/test.artxenia.com/www/lib/Varien/Db/Statement/Pdo/Mysql.php(115): Zend_Db_Statement_Pdo->_execute(Array)
#1 /home/artxenia/test.artxenia.com/www/lib/Zend/Db/Statement.php(320): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
и тд
Magento 1.6.1.0
Российская сборка 1.22.0
Заранее спасибо.
SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row
27.12.2011 10:37
Когда я зашёл в административную часть вашего магазина — я увидел, что система предупреждала вас о том, что расчётные таблицы (индексы) устарели.
После их обновления сбой больше вроде не проявляется.
На будущее: читайте те предупреждения, которые даёт вам система в административной части и выполняйте рекомендации системы.
После их обновления сбой больше вроде не проявляется.
На будущее: читайте те предупреждения, которые даёт вам система в административной части и выполняйте рекомендации системы.
27.12.2011 11:31
К сожалению, проблема осталась
посмотрите, пожалуйста, еще раз
Проблема начала появляться после добавления новых товаров,
также в набор атрибутов Default были введены новые атрибуты
посмотрите, пожалуйста, еще раз
Проблема начала появляться после добавления новых товаров,
также в набор атрибутов Default были введены новые атрибуты
27.12.2011 11:41
Возможно, причина сбоя — в дефекте ядра или в теме HelloWired.
В стеке вызовов при сбое ни один из файлов Российской сборки не встречается.
Чтобы проверить, не является ли дефектной тема HelloWired, вы можете временно переключиться на стандартную тему и попробовать воспроизвести сбой.
В любом случае, как я заметил, сбой происходит только про первой загрузке карточки товара и проявляется только текстовым сооьбщением в журнале неполадок. На экране вроде никак не проявляется.
В стеке вызовов при сбое ни один из файлов Российской сборки не встречается.
Чтобы проверить, не является ли дефектной тема HelloWired, вы можете временно переключиться на стандартную тему и попробовать воспроизвести сбой.
В любом случае, как я заметил, сбой происходит только про первой загрузке карточки товара и проявляется только текстовым сооьбщением в журнале неполадок. На экране вроде никак не проявляется.
27.12.2011 12:47
Методом тыка был найден файл с багом app/code/core/Mage/Catalog/Block/Product/List/Upsell.php метод _prepareData()
В нем в метод addExcludeProductFilter видимо добавляются неверные параметры что приводит к такому запросу:
SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, `cat_index`.`position` AS `cat_index_position`, `links`.`link_id`, `link_attribute_position_int`.`value` AS `position` FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.website_id = '1' AND price_index.customer_group_id = '1'
INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id AND cat_index.store_id='1' AND cat_index.visibility IN(2, 4) AND cat_index.category_id='2'
INNER JOIN `catalog_product_link` AS `links` ON links.linked_product_id = e.entity_id AND links.link_type_id = 1
LEFT JOIN `catalog_product_link_attribute_int` AS `link_attribute_position_int` ON link_attribute_position_int.link_id = links.link_id AND link_attribute_position_int.product_link_attribute_id = '1' WHERE (e.entity_id NOT IN((SELECT `sales_flat_quote_item`.`product_id` FROM `sales_flat_quote_item` WHERE (quote_id = '12')))) AND (links.product_id = 7) AND (`e`.`entity_id` != '7') ORDER BY `e`.`entity_id` ASC
SELECT `sales_flat_quote_item`.`product_id` FROM `sales_flat_quote_item` WHERE (quote_id = '12') дает больше чем 1 результат
Кто-нибудь знает что лежит в sales_flat_quote_item?
В нем в метод addExcludeProductFilter видимо добавляются неверные параметры что приводит к такому запросу:
SELECT `e`.*, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULL, LEAST(price_index.min_price, price_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, `cat_index`.`position` AS `cat_index_position`, `links`.`link_id`, `link_attribute_position_int`.`value` AS `position` FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_product_index_price` AS `price_index` ON price_index.entity_id = e.entity_id AND price_index.website_id = '1' AND price_index.customer_group_id = '1'
INNER JOIN `catalog_category_product_index` AS `cat_index` ON cat_index.product_id=e.entity_id AND cat_index.store_id='1' AND cat_index.visibility IN(2, 4) AND cat_index.category_id='2'
INNER JOIN `catalog_product_link` AS `links` ON links.linked_product_id = e.entity_id AND links.link_type_id = 1
LEFT JOIN `catalog_product_link_attribute_int` AS `link_attribute_position_int` ON link_attribute_position_int.link_id = links.link_id AND link_attribute_position_int.product_link_attribute_id = '1' WHERE (e.entity_id NOT IN((SELECT `sales_flat_quote_item`.`product_id` FROM `sales_flat_quote_item` WHERE (quote_id = '12')))) AND (links.product_id = 7) AND (`e`.`entity_id` != '7') ORDER BY `e`.`entity_id` ASC
SELECT `sales_flat_quote_item`.`product_id` FROM `sales_flat_quote_item` WHERE (quote_id = '12') дает больше чем 1 результат
Кто-нибудь знает что лежит в sales_flat_quote_item?
27.12.2011 13:23
Посмотрел программный код.
Причиной сбоя является дефект стандартного программного кода Magento Community Edition.
Дефекту подвержены все версии ветки 1.6.
Включил в Российскую сборку заплатку для устранения этого дефекта.
На вашем сайте сборку уже обновил.
Причиной сбоя является дефект стандартного программного кода Magento Community Edition.
Дефекту подвержены все версии ветки 1.6.
Включил в Российскую сборку заплатку для устранения этого дефекта.
На вашем сайте сборку уже обновил.
17.01.2012 20:39
Hi,
I'm having the exact same problem on a magento 1.6.1 installation. I've searched the magento forums, and couldn't find an actual solution for this problem. Today I've upgraded to 1.6.2, but the problem is still there. Could you please tell me which file(s) need to be changed to fix this bug?
I'm having the exact same problem on a magento 1.6.1 installation. I've searched the magento forums, and couldn't find an actual solution for this problem. Today I've upgraded to 1.6.2, but the problem is still there. Could you please tell me which file(s) need to be changed to fix this bug?
17.01.2012 21:02
Хороший пример того, что некоторые модули и функции Российской сборки Magento уникальны даже для глобального рынка.