Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id CF69D200CF6 for ; Mon, 4 Sep 2017 05:58:16 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id C2FC7163C9B; Mon, 4 Sep 2017 03:58:16 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id E2B4F163C8B for ; Mon, 4 Sep 2017 05:58:15 +0200 (CEST) Received: (qmail 28946 invoked by uid 500); 4 Sep 2017 03:58:14 -0000 Mailing-List: contact oak-issues-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: oak-dev@jackrabbit.apache.org Delivered-To: mailing list oak-issues@jackrabbit.apache.org Received: (qmail 28935 invoked by uid 99); 4 Sep 2017 03:58:14 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Sep 2017 03:58:14 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id E3EA3C2545 for ; Mon, 4 Sep 2017 03:58:13 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.202 X-Spam-Level: X-Spam-Status: No, score=-99.202 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id KRBQKHiQ-Zu4 for ; Mon, 4 Sep 2017 03:58:07 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 562085FCC1 for ; Mon, 4 Sep 2017 03:58:07 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 44266E09FE for ; Mon, 4 Sep 2017 03:58:05 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id CDC372414F for ; Mon, 4 Sep 2017 03:58:01 +0000 (UTC) Date: Mon, 4 Sep 2017 03:58:01 +0000 (UTC) From: "Amit Jain (JIRA)" To: oak-issues@jackrabbit.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (OAK-6611) [upgrade][oak-blob-cloud] Many S3DataStore errors during migration with oak-upgrade MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 04 Sep 2017 03:58:17 -0000 [ https://issues.apache.org/jira/browse/OAK-6611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16152098#comment-16152098 ] Amit Jain commented on OAK-6611: -------------------------------- [~tomek.rekawek], [~arkadius] Yes I observed that now we don't have the wait for pending uploads call but I thought that was ok since, on server start when the S3DataStore is initialized in the migrated repo then the uploads would again start. But if the desired behavior is to wait then that can be done by checking if the call {code} // Retrieve the current elements in the staging upload cache while (store.getStats().get(1).getElementCount() > 0) { } {code} > [upgrade][oak-blob-cloud] Many S3DataStore errors during migration with oak-upgrade > ----------------------------------------------------------------------------------- > > Key: OAK-6611 > URL: https://issues.apache.org/jira/browse/OAK-6611 > Project: Jackrabbit Oak > Issue Type: Bug > Components: blob-cloud, upgrade > Affects Versions: 1.8, 1.7.7 > Reporter: Arek Kita > Assignee: Amit Jain > Priority: Critical > Attachments: oak-upgrade-with-oak-blob-cloud.fragment.log > > > [~tomek.rekawek], [~amitjain] Due to async nature of S3 datastore format/upload process the migration ends up way quicker than S3 datastore is being migrated. This leads to a huge number of exceptions shown due to *non synchronised* nature of *oak-upgrade* migration process vs async S3 datastore background processes. > I see a few possible solutions for that: > * disable migration/uploading of S3 cache for the time of migration (bad idea IMHO) > * wait for it (it might be desired or a bad idea as it might take longer than migration for a few cases) > * pause it when migration is completed in a clean way (so some binaries aren't uploaded and moved to a new datastore format) -- not sure if such mixed state is ok at all > WDYT? > Please also note that this happens only when {{\-\-src-s3config \-\-src-s3datastore}} options are specified during migration which in many cases is true (this would be the same for the destination DataStore options). > Referencing a source datastore is needed (even if {{\-\-copy-binaries}} is not included) in example to copy checkpoints properly. > The example exception is like the below: > {code} > 01.09.2017 11:39:41.088 ERROR o.a.j.o.p.b.UploadStagingCache: Error adding file to backend > java.lang.IllegalStateException: Connection pool shut down > at org.apache.http.util.Asserts.check(Asserts.java:34) > at org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:184) > at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:251) > at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76) > at com.amazonaws.http.conn.$Proxy3.requestConnection(Unknown Source) > at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:175) > at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) > at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) > at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) > at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) > at com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72) > at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:880) > at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:723) > at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:475) > at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:437) > at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:386) > at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3996) > at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1161) > at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1136) > at org.apache.jackrabbit.oak.blob.cloud.s3.S3Backend.write(S3Backend.java:201) > at org.apache.jackrabbit.oak.plugins.blob.AbstractSharedCachingDataStore$2.write(AbstractSharedCachingDataStore.java:170) > at org.apache.jackrabbit.oak.plugins.blob.UploadStagingCache$4.call(UploadStagingCache.java:341) > at org.apache.jackrabbit.oak.plugins.blob.UploadStagingCache$4.call(UploadStagingCache.java:336) > at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:108) > at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:41) > at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)