jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chetan Mehrotra (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-7495) async,sync index not synchronous
Date Thu, 12 Jul 2018 13:55:00 GMT

    [ https://issues.apache.org/jira/browse/OAK-7495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16541683#comment-16541683
] 

Chetan Mehrotra commented on OAK-7495:
--------------------------------------

Would need to revisit the flow to confirm the hypothesis. 

{quote}
All this said, I don't feel comfortable with trying to maintain quite a complex sync implementation
where hybridV2 does a repository level sync view for specific properties (so force sync for
only some properties and not all properties being handled by the index). I'd rather prefer
we deprecate "async='sync' " type (of course, that's my personal view)
{quote}

+1. The async='sync' would not work properly in cluster setups and that was the reason for
introducing HybridV2. So investing further here does not make sense. 

> async,sync index not synchronous
> --------------------------------
>
>                 Key: OAK-7495
>                 URL: https://issues.apache.org/jira/browse/OAK-7495
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: indexing
>    Affects Versions: 1.6.1
>            Reporter: Stefan Egli
>            Assignee: Vikas Saurabh
>            Priority: Major
>         Attachments: GetJobVerifier.java, OAK-7495-add-logs.patch, OAK-7495-potential-fix.patch,
OAK-7495-test.patch, OAK-7495.demo.patch, slingeventJob.-1.tidy.json, unit-tests.log
>
>
> On an oak 1.6.1 (AEM 6.3) a suspicious behaviour was detected, where in Sling an [addJob|https://github.com/apache/sling-old-svn-mirror/blob/org.apache.sling.event-4.2.0/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java#L286]
followed by a [getJobById|https://github.com/apache/sling-old-svn-mirror/blob/org.apache.sling.event-4.2.0/src/main/java/org/apache/sling/event/impl/jobs/JobManagerImpl.java#L294]
(in a different thread though, but perhaps would also fail in same thread) was not seeing
the job that was just created.
> To give a bit more background, in Sling getJobById results in a query. That query uses
an index which is built using {{"async, sync"}}. So the assumption is that the index is actually
synchronous. But a test reproducing initially mentioned scenario showed the opposite.
> Attached:
> *  [^GetJobVerifier.java] a Sling job test case that has 2 threads: a thread that does
addJob, adds the resulting jobId to a list (synchronized). and a second thread that reads
the jobId off that list and does a getJobById. That getJobById should find the job, as it
was just created (how else could you figure out the jobId) - but sometimes it FAILs (see system
out FAIL)
> *  [^slingeventJob.-1.tidy.json] the index definition showing it is indeed "async, sync"
> PS: Example query that is executed: {{/jcr:root/var/eventing/jobs//element(*,slingevent:Job)[@slingevent:eventId
= '2018/5/11/2/12/bca505d9-3044-4de9-9732-056ab1b6c513_5569']}}
> /cc [~catholicon]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message