You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/03/14 08:19:00 UTC
[jira] [Work logged] (CURATOR-609) ModeledCache attempts to deserialize empty ZNodes on deletion, resulting in exceptions
[ https://issues.apache.org/jira/browse/CURATOR-609?focusedWorklogId=740706&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-740706 ]
ASF GitHub Bot logged work on CURATOR-609:
------------------------------------------
Author: ASF GitHub Bot
Created on: 14/Mar/22 08:18
Start Date: 14/Mar/22 08:18
Worklog Time Spent: 10m
Work Description: eolivelli commented on pull request #396:
URL: https://github.com/apache/curator/pull/396#issuecomment-1066496084
This issue was targeted 2.5.1
I am postponing to 2.5.2, I am sorry
--
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: dev-unsubscribe@curator.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Issue Time Tracking
-------------------
Worklog Id: (was: 740706)
Time Spent: 1.5h (was: 1h 20m)
> ModeledCache attempts to deserialize empty ZNodes on deletion, resulting in exceptions
> --------------------------------------------------------------------------------------
>
> Key: CURATOR-609
> URL: https://issues.apache.org/jira/browse/CURATOR-609
> Project: Apache Curator
> Issue Type: Bug
> Components: Framework
> Affects Versions: 5.1.0
> Reporter: Ryan Ruel
> Priority: Major
> Fix For: 5.2.2
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> When using the ModeledCache implementation, when a ZPath is deleted the implementation assumes that all ZNodes in the path contain a valid instance of the Model.
> If intermediary paths have been created that do not contain a Model, the implementation is calling the Jackson deserialize method with null data, resulting in an exception.
> Instead, the code should ensure there is valid data present prior to attempting to deserialize and call the "accept()" (callback) method on action NODE_REMOVED.
> Example:
> TestModel child1 = new TestModel("d", "e", "f", 1, BigInteger.ONE);
> ZPath path1 = path.child("foo").child("bar").child("child1");
> try (CachedModeledFramework<TestModel> client = ModeledFramework.wrap(async, modelSpec).cached())
> { CountDownLatch latch = new CountDownLatch(1); client.listenable().addListener((t, p, s, m) -> latch.countDown()); client.start(); complete(client.withPath(path1).set(child1)); assertTrue(timing.awaitLatch(latch)); assertDoesNotThrow(() -> rawClient.delete().deletingChildrenIfNeeded().forPath(path.toString())); }
> After calling "delete()", an exception is thrown:
> ERROR org.apache.curator.x.async.modeled.TestCachedModeledFramework$$Lambda$409/0x0000000800e0c850 Could not process cache message [Curator-SafeNotifyService-0]
> java.lang.IllegalArgumentException: argument "src" is null
> at com.fasterxml.jackson.databind.ObjectReader._assertNotNull(ObjectReader.java:2120)
>
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)