[
https://issues.apache.org/jira/browse/OAK-8912?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17100624#comment-17100624
]
Ankush Nagapure commented on OAK-8912:
--------------------------------------
Any updates on this bug?
> Version garbage collector is not working if documents exceeded 100000
> ---------------------------------------------------------------------
>
> Key: OAK-8912
> URL: https://issues.apache.org/jira/browse/OAK-8912
> Project: Jackrabbit Oak
> Issue Type: Bug
> Reporter: Ankush Nagapure
> Priority: Major
> Attachments: exception.txt
>
>
> Oak version - 1.10.2, PostgreSQL 10.7 (10.7), using driver: PostgreSQL JDBC
> Driver 42.2.2 (42.2).
> *Actual :*
> After below code run, if document collectlimit exceeded 100000, it throws
> exception attached in .txt
> {color:#0747a6}public static void runVersionGC() { {color}
> {color:#0747a6} log.info("Running garbage collection for
> DocumentNodeStore");{color}
> {color:#0747a6} try {{color}
> {color:#0747a6} final VersionGCOptions versionGCOptions =
> new VersionGCOptions();{color}
> {color:#0747a6}
> *versionGCOptions.withCollectLimit(1000000);*{color}
> {color:#0747a6}
> *documentNodeStore.getVersionGarbageCollector().setOptions(versionGCOptions);*{color}
> {color:#0747a6} log.info("versionGCOptions.collectLimit : "
> + versionGCOptions.collectLimit);{color}
> {color:#0747a6}
> documentNodeStore.getVersionGarbageCollector().gc(0, TimeUnit.DAYS);{color}
> {color:#0747a6} } catch (final DocumentStoreException e) {{color}
> {color:#0747a6} //{color}
> {color:#0747a6} }{color}
> Below is the code to create repository and get documentNodeStore object for
> version garbage collection.
> {color:#0747a6}private static Repository createRepo(final Map<String,
> String> dbDetails){color}
> {color:#0747a6} throws DataStoreException {{color}
> {color:#0747a6} try {{color}
> {color:#0747a6} final RDBOptions options ={color}
> {color:#0747a6} new
> DBOptions().tablePrefix(dbDetails.get(DB_TABLE_PREFIX)).dropTablesOnClose({color}
> {color:#0747a6} false);{color}
> {color:#0747a6} final DataSource ds ={color}
> {color:#0747a6} RDBDataSourceFactory.forJdbcUrl({color}
> {color:#0747a6} dbDetails.get("dbURL"),{color}
> {color:#0747a6} dbDetails.get("dbUser"),{color}
> {color:#0747a6} dbDetails.get("dbPassword"));{color}
> {color:#0747a6} final Properties properties =
> buildS3Properties(dbDetails);{color}
> {color:#0747a6} final S3DataStore s3DataStore =
> buildS3DataStore(properties);{color}
> {color:#0747a6} final DataStoreBlobStore dataStoreBlobStore = new
> DataStoreBlobStore(s3DataStore);{color}
> {color:#0747a6} final Whiteboard wb = new
> DefaultWhiteboard();{color}
> {color:#0747a6} bapRegistration ={color}
> {color:#0747a6}
> wb.register(BlobAccessProvider.class,(BlobAccessProvider) {color}
> {color:#0747a6}
> dataStoreBlobStore,properties);{color}
> {color:#0747a6} *documentNodeStore =*{color}
> {color:#0747a6} *new RDBDocumentNodeStoreBuilder()*{color}
> {color:#0747a6} *.setBlobStore(dataStoreBlobStore)*{color}
> {color:#0747a6} *.setBundlingDisabled(true)*{color}
> {color:#0747a6} *.setRDBConnection(ds, options)*{color}
> {color:#0747a6} *.build();*{color}
> {color:#0747a6} repository = new
> Jcr(documentNodeStore).with(wb).createRepository();{color}
> {color:#0747a6} return repository;{color}
> {color:#0747a6} } catch (final DataStoreException e) {{color}
> {color:#0747a6} log.error("S3 Connection could not be
> created." + e);{color}
> {color:#0747a6} throw new DataStoreException("S3 Connection
> could not be created");{color}
> {color:#0747a6} }{color}
> {color:#0747a6} }{color}
> {color:#172b4d}Even after setting collectLimit in code, still it is taking
> 100000 as limit.{color}
> {color:#172b4d}Expected :{color}
> versionGCOptions.collectLimit should set to custom value to avoid
> DocumentStoreException or solution to avoid DocumentStoreException if
> documents exceeded to 100000.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)