thomasmueller commented on code in PR #2121:
URL: https://github.com/apache/jackrabbit-oak/pull/2121#discussion_r1973844846


##########
oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/index/ElasticIndexWriter.java:
##########
@@ -204,11 +204,35 @@ private void provisionIndex() throws IOException {
             if (ese.status() == 400 && 
ese.getMessage().contains("resource_already_exists_exception")) {
                 LOG.warn("Index {} already exists. Ignoring error", indexName);
             } else {
+                LOG.warn("Failed to create index {}", indexName, ese);
+                StringBuilder sb = new StringBuilder();
+                int old = JsonpUtils.maxToStringLength();
+                try {
+                    JsonpUtils.maxToStringLength(16_000_000);
+                    JsonpUtils.toString(request, sb);
+                    String[] array = splitLargeString(sb.toString(), 1024);
+                    for (int i = 0; i < array.length; i++) {
+                        LOG.warn("request chunk[{}] = {}", i, array[i]);
+                    }
+                } finally {
+                    JsonpUtils.maxToStringLength(old);
+                }

Review Comment:
   Notice this is just the _maximum_ length. The default maximum length is 
10'000 characters, and unfortunately, the interesting part is not logged at all 
at that length. The request for a "normal" index definition is around 13'000 
characters. So we could limit to 100'000. However, possibly this is not enough: 
it is hard to tell. But I changed it to 1 MB now.
   
   > allocating 16MB of memory
   
   It doesn't allocate 16 MB of memory. Internally, JsonpUtils uses 
StringBuilder, which doesn't allocate 16 MB either, if the message is smaller.
   
   > which could lead to us losing other logs which are more important
   
   This message is important, because without it, it is very hard to understand 
why building the index failed. Truncating this message would be very 
problematic.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: oak-dev-unsubscr...@jackrabbit.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to