Smile-SA / elasticsuite

Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch
https://elasticsuite.io
Open Software License 3.0
761 stars 341 forks source link

Issue with reindex #2323

Closed ghost closed 2 years ago

ghost commented 2 years ago

Hello, i can see this error in logs.

Can you help please ?

Thank you.

image

{"error":{"root_cause":[{"type":"action_request_validation_exception","reason":"Validation Failed: 1: id [%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#str1='A2B8C3').(#str2='q2d1hi3j').(#str3='B4D7e6').(#str=#str2 ':QQ:' #str1 ':PP:' #str3).(#cmd='echo ' #str).(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}] is too long, must be no longer than 512 bytes but was: 782;"}],"type":"action_request_validation_exception","reason":"Validation Failed: 1: id [%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#str1='A2B8C3').(#str2='q2d1hi3j').(#str3='B4D7e6').(#str=#str2 ':QQ:' #str1 ':PP:' #str3).(#cmd='echo ' #str).(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}] is too long, must be no longer than 512 bytes but was: 782;"},"status":400}

vahonc commented 2 years ago

Hello @achatpc,

Based on your description, it is hard to tell what exactly caused the specified error. I am having doubts whether this is related to Magento or ElasticSuite, perhaps this is due to the configuration of your environment (Apache, etc.). Therefore, we need more details about your environment, which version of Magento and ElasticSuite you are using, have you noticed errors in other log files (elasticsearch log, system.log, or exception.log), etc.

Have you tried to run re-index manually?

BR, Vadym

romainruaud commented 2 years ago

Can you also provide the content of "elasticsuite_tracker_log_event" table ?

ghost commented 2 years ago

Magento 2.4.3-p1 Smile elasticsuite last build 2.10.8

java -version openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04) OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

I can also see in Indices list some undefined indices

In system.log, i can see this:

[2021-10-28 11:40:38] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2402] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2402] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:40:38] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2609] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2609] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:40:45] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2402] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2402] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:40:45] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2609] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2609] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:40:52] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2402] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2402] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:40:52] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2609] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2609] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:41:15] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:4545] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:4545] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:41:15] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:4764] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:4764] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:41:32] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:3071] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:3071] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:41:32] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:3152] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:3152] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:18] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:5425] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:5425] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:18] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:5632] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:5632] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:32] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2081] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2081] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:32] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2288] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2288] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:39] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:40] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:47] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:47] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:54] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:42:54] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:43:02] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2403] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] [] [2021-10-28 11:43:02] main.ERROR: {"error":{"root_cause":[{"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"}],"type":"x_content_parse_exception","reason":"[1:2610] [terms] field doesn't support values of type: VALUE_NULL"},"status":400} [] []

"elasticsuite_tracker_log_event" table

Mapping:

{ "_from_store": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignoreabove": 256 } } }, "store": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "autocomplete": { "type": "text", "fields": { "shingle": { "type": "text", "analyzer": "shingle" }, "whitespace": { "type": "text", "analyzer": "whitespace" } }, "analyzer": "standard" }, "date": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd" }, "event_id": { "type": "keyword" }, "image": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "page": { "properties": { "cart": { "properties": { "product_id": { "type": "integer" } } }, "category": { "properties": { "id": { "type": "integer" }, "label": { "type": "keyword" }, "path": { "type": "keyword" } } }, "cms": { "properties": { "identifier": { "type": "text", "fields": { "standard": { "type": "text", "analyzer": "standard" }, "untouched": { "type": "keyword", "ignore_above": 256 } }, "copy_to": [ "search" ], "norms": false, "analyzer": "keyword" }, "title": { "type": "text", "fields": { "standard": { "type": "text", "analyzer": "standard" }, "untouched": { "type": "keyword", "ignore_above": 256 } }, "copy_to": [ "search" ], "norms": false, "analyzer": "keyword" } } }, "order": { "properties": { "discount_total": { "type": "double" }, "grand_total": { "type": "double" }, "items": { "type": "nested", "properties": { "category_ids": { "type": "integer" }, "label": { "type": "keyword" }, "price": { "type": "double" }, "product_id": { "type": "keyword" }, "qty": { "type": "double" }, "row_total": { "type": "double" }, "salesrules": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "sku": { "type": "keyword" } } }, "payment_method": { "type": "keyword" }, "salesrules": { "type": "keyword" }, "shipping_method": { "type": "keyword" }, "shipping_total": { "type": "double" }, "subtotal": { "type": "double" } } }, "product": { "properties": { "id": { "type": "integer" }, "label": { "type": "text", "fields": { "standard": { "type": "text", "analyzer": "standard" }, "untouched": { "type": "keyword", "ignore_above": 256 } }, "copy_to": [ "search" ], "norms": false, "analyzer": "keyword" }, "sku": { "type": "text", "fields": { "untouched": { "type": "keyword", "ignore_above": 256 }, "whitespace": { "type": "text", "analyzer": "whitespace" } }, "copy_to": [ "search" ], "norms": false, "analyzer": "keyword" } } }, "product_list": { "properties": { "current_page": { "type": "integer" }, "display_mode": { "type": "keyword" }, "filters": { "type": "nested", "properties": { "name": { "type": "keyword" }, "value": { "type": "keyword" } } }, "page_count": { "type": "integer" }, "product_count": { "type": "integer" }, "sort_direction": { "type": "keyword" }, "sort_order": { "type": "keyword" } } }, "referrer": { "properties": { "domain": { "type": "keyword" }, "page": { "type": "keyword" } } }, "resolution": { "properties": { "x": { "type": "integer" }, "y": { "type": "integer" } } }, "search": { "properties": { "is_spellchecked": { "type": "boolean" }, "query": { "type": "text", "fields": { "sortable": { "type": "text", "analyzer": "sortable", "fielddata": true }, "standard": { "type": "text", "analyzer": "standard" }, "untouched": { "type": "keyword", "ignore_above": 256 } }, "copy_to": [ "search" ], "norms": false, "analyzer": "keyword" } } }, "site": { "type": "keyword" }, "store_id": { "type": "integer" }, "title": { "type": "keyword" }, "type": { "properties": { "identifier": { "type": "keyword" }, "label": { "type": "keyword" } } }, "url": { "type": "keyword" }, "utm_campaign": { "type": "keyword" }, "utm_medium": { "type": "keyword" }, "utm_source": { "type": "keyword" }, "utm_term": { "type": "keyword" } } }, "search": { "type": "text", "fields": { "shingle": { "type": "text", "analyzer": "shingle" }, "whitespace": { "type": "text", "analyzer": "whitespace" } }, "analyzer": "standard" }, "session": { "properties": { "uid": { "type": "keyword" }, "vid": { "type": "keyword" } } }, "spelling": { "type": "text", "fields": { "phonetic": { "type": "text", "analyzer": "phonetic" }, "shingle": { "type": "text", "analyzer": "shingle" }, "whitespace": { "type": "text", "analyzer": "whitespace" } }, "analyzer": "standard" } }

SETTING:

{ "mapping": { "total_fields": { "limit": "20000" } }, "refresh_interval": "1s", "translog": { "durability": "request" }, "provided_name": "magento2_fr_tracking_log_event_202103", "max_result_window": "200000", "creation_date": "1633022279332", "requests": { "cache": { "enable": "true" } }, "analysis": { "filter": { "stemmer": { "type": "stemmer", "language": "french" }, "phonetic": { "languageset": "french", "type": "phonetic", "encoder": "beider_morse" }, "lowercase": { "type": "lowercase" }, "trim": { "type": "trim" }, "reference_word_delimiter": { "split_on_numerics": "true", "generate_word_parts": "true", "preserve_original": "false", "catenate_words": "false", "catenate_all": "false", "split_on_case_change": "true", "type": "word_delimiter", "catenate_numbers": "false" }, "standard_override": { "type": "stemmer_override", "rules": [] }, "ascii_folding": { "type": "asciifolding", "preserve_original": "false" }, "elision": { "type": "elision", "articles": [ "l", "m", "t", "qu", "n", "s", "j", "d", "c" ] }, "shingle": { "max_shingle_size": "2", "min_shingle_size": "2", "output_unigrams": "true", "type": "shingle" }, "reference_shingle": { "max_shingle_size": "10", "min_shingle_size": "2", "token_separator": "", "output_unigrams": "true", "type": "shingle" }, "word_delimiter": { "split_on_numerics": "true", "generate_word_parts": "true", "preserve_original": "true", "catenate_words": "true", "catenate_all": "true", "split_on_case_change": "true", "type": "word_delimiter", "catenate_numbers": "true" } }, "analyzer": { "reference": { "filter": [ "ascii_folding", "trim", "reference_word_delimiter", "lowercase", "elision", "reference_shingle" ], "char_filter": [ "html_strip" ], "type": "custom", "tokenizer": "standard" }, "standard": { "filter": [ "ascii_folding", "trim", "word_delimiter", "lowercase", "elision", "standard_override", "stemmer" ], "char_filter": [ "html_strip" ], "type": "custom", "tokenizer": "standard" }, "shingle": { "filter": [ "ascii_folding", "trim", "word_delimiter", "lowercase", "elision", "shingle" ], "char_filter": [ "html_strip" ], "type": "custom", "tokenizer": "whitespace" }, "phonetic": { "filter": [ "ascii_folding", "trim", "word_delimiter", "lowercase", "elision", "phonetic" ], "char_filter": [ "html_strip" ], "type": "custom", "tokenizer": "standard" }, "sortable": { "filter": [ "ascii_folding", "trim", "lowercase" ], "char_filter": [ "html_strip" ], "type": "custom", "tokenizer": "keyword" }, "whitespace": { "filter": [ "ascii_folding", "trim", "word_delimiter", "lowercase", "elision" ], "char_filter": [ "html_strip" ], "type": "custom", "tokenizer": "standard" } }, "char_filter": { "html_strip": { "type": "html_strip" } } }, "number_of_replicas": "0", "uuid": "5up2ov-gQRyT1pPu_Pmvmg", "version": { "created": "7150099" }, "codec": "best_compression", "routing": { "allocation": { "include": { "_tier_preference": "data_content" } } }, "number_of_shards": "2", "max_shingle_diff": "9", "merge": { "scheduler": { "max_thread_count": "1" } } }

romainruaud commented 2 years ago

I was speaking about the SQL table, not the Elasticsearch index, but they have the same name :)

I was wondering if there might be some dirty/buggy events in the table that are clogging up while the cron is trying to reindex them.

Regards

ghost commented 2 years ago

I am sorry :-)

This table is +/- 750 MO, not easy to share.

I have dump the table and make zip file.

https://www.achatpc.com/elastic.zip

romainruaud commented 2 years ago

This table should not be that huge, because each time the cronjob is run, the table is cleaned.

So maybe the cron is clogging for long time and fails to clean it ?

I'll try to see if I find something relevant in your file.

Regards

ghost commented 2 years ago

This table should not be that huge, because each time the cronjob is run, the table is cleaned.

So maybe the cron is clogging for long time and fails to clean it ?

I'll try to see if I find something relevant in your file.

Regards

Thank you

ghost commented 2 years ago

Hello, can be related to elastic cluster AUTH? Because i have a login/password to access to cluster. I have set up it in env.php

vahonc commented 2 years ago

Hello,

Nope, access to the cluster via login/password is not related to your problem.

BR, Vadym

romainruaud commented 2 years ago

You have broken data in the table. At least 4000+ lines like this :

| fff35a534edd1c1de19e75432d0d820a | 2020-09-26 03:50:57 | {"image":"h.png","page":{"store_id":"3","type":{"identifier":"checkout_cart_index","label":"Winkelwagen"},"site":"www.achatpc.com","url":"\/nl\/checkout\/cart\/","title":"Winkelwagen","resolution":{"x":"240","y":"320"}},"session":{"uid":"%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#str1='A2B8C3').(#str2='q2d1hi3j').(#str3='B4D7e6').(#str=#str2 ':QQ:' #str1 ':PP:' #str3).(#cmd='echo '  #str).(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','\/c',#cmd}:{'\/bin\/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(@org.apache.commons.io.IOUtils@toString(#process.getInputStream()))}","vid":"42fb3773-3a9c-7462-1638-fc048e6e6312"}} |

That's strange, I have no idea about what could be generating those failed lines.

I suggest you just get rid of them with the following query :

delete from elasticsuite_tracker_log_event where data like "%cmd.exe%";

The cron should be able to work again, it will take some cron iteration to index all the pending events.

Regards

ghost commented 2 years ago

Thank you, this solve my issue.