[jira] [Updated] (KYLIN-2973) Potential issue of not atomically update cube instance map

2018-09-13 Thread Shaofeng SHI (JIRA)


 [ 
https://issues.apache.org/jira/browse/KYLIN-2973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shaofeng SHI updated KYLIN-2973:

Fix Version/s: (was: Backlog)
   v2.6.0

> Potential issue of not atomically update cube instance map
> --
>
> Key: KYLIN-2973
> URL: https://issues.apache.org/jira/browse/KYLIN-2973
> Project: Kylin
>  Issue Type: Bug
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>Priority: Major
> Fix For: v2.6.0
>
>
> P1
> {code}
> try {
> getStore().putResource(cube.getResourcePath(), cube, 
> CUBE_SERIALIZER);
> } catch (IllegalStateException ise) {
> logger.warn("Write conflict to update cube " + cube.getName() + " 
> at try " + retry + ", will retry...");
> if (retry >= 7) {
> logger.error("Retried 7 times till got error, abandoning...", 
> ise);
> throw ise;
> }
> cube = reloadCubeLocal(cube.getName());
> update.setCubeInstance(cube);
> retry++;
> cube = updateCubeWithRetry(update, retry);
> }
> {code}
> P2
> {code}
> if (toRemoveResources.size() > 0) {
> for (String resource : toRemoveResources) {
> try {
> getStore().deleteResource(resource);
> } catch (IOException ioe) {
> logger.error("Failed to delete resource " + 
> toRemoveResources.toString());
> }
> }
> }
> {code}
> P3
> {code}
> cubeMap.put(cube.getName(), cube);
> {code}
> There's a chance like:
> # Thread t1, goes into P2;
> # Then Thread t2, goes into P1, P2, P3; the cube instance in the map will be 
> updated by t2
> # Then Thread t1 goes into P3; the cube instance in the map will be updated 
> by t1, which is not correct



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


[jira] [Updated] (KYLIN-2973) Potential issue of not atomically update cube instance map

2018-09-03 Thread Shaofeng SHI (JIRA)


 [ 
https://issues.apache.org/jira/browse/KYLIN-2973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shaofeng SHI updated KYLIN-2973:

Fix Version/s: (was: v2.5.0)
   Backlog

> Potential issue of not atomically update cube instance map
> --
>
> Key: KYLIN-2973
> URL: https://issues.apache.org/jira/browse/KYLIN-2973
> Project: Kylin
>  Issue Type: Bug
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>Priority: Major
> Fix For: Backlog
>
>
> P1
> {code}
> try {
> getStore().putResource(cube.getResourcePath(), cube, 
> CUBE_SERIALIZER);
> } catch (IllegalStateException ise) {
> logger.warn("Write conflict to update cube " + cube.getName() + " 
> at try " + retry + ", will retry...");
> if (retry >= 7) {
> logger.error("Retried 7 times till got error, abandoning...", 
> ise);
> throw ise;
> }
> cube = reloadCubeLocal(cube.getName());
> update.setCubeInstance(cube);
> retry++;
> cube = updateCubeWithRetry(update, retry);
> }
> {code}
> P2
> {code}
> if (toRemoveResources.size() > 0) {
> for (String resource : toRemoveResources) {
> try {
> getStore().deleteResource(resource);
> } catch (IOException ioe) {
> logger.error("Failed to delete resource " + 
> toRemoveResources.toString());
> }
> }
> }
> {code}
> P3
> {code}
> cubeMap.put(cube.getName(), cube);
> {code}
> There's a chance like:
> # Thread t1, goes into P2;
> # Then Thread t2, goes into P1, P2, P3; the cube instance in the map will be 
> updated by t2
> # Then Thread t1 goes into P3; the cube instance in the map will be updated 
> by t1, which is not correct



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


[jira] [Updated] (KYLIN-2973) Potential issue of not atomically update cube instance map

2018-06-27 Thread Shaofeng SHI (JIRA)


 [ 
https://issues.apache.org/jira/browse/KYLIN-2973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shaofeng SHI updated KYLIN-2973:

Fix Version/s: v2.5.0

> Potential issue of not atomically update cube instance map
> --
>
> Key: KYLIN-2973
> URL: https://issues.apache.org/jira/browse/KYLIN-2973
> Project: Kylin
>  Issue Type: Bug
>Reporter: Zhong Yanghong
>Assignee: Zhong Yanghong
>Priority: Major
> Fix For: v2.5.0
>
>
> P1
> {code}
> try {
> getStore().putResource(cube.getResourcePath(), cube, 
> CUBE_SERIALIZER);
> } catch (IllegalStateException ise) {
> logger.warn("Write conflict to update cube " + cube.getName() + " 
> at try " + retry + ", will retry...");
> if (retry >= 7) {
> logger.error("Retried 7 times till got error, abandoning...", 
> ise);
> throw ise;
> }
> cube = reloadCubeLocal(cube.getName());
> update.setCubeInstance(cube);
> retry++;
> cube = updateCubeWithRetry(update, retry);
> }
> {code}
> P2
> {code}
> if (toRemoveResources.size() > 0) {
> for (String resource : toRemoveResources) {
> try {
> getStore().deleteResource(resource);
> } catch (IOException ioe) {
> logger.error("Failed to delete resource " + 
> toRemoveResources.toString());
> }
> }
> }
> {code}
> P3
> {code}
> cubeMap.put(cube.getName(), cube);
> {code}
> There's a chance like:
> # Thread t1, goes into P2;
> # Then Thread t2, goes into P1, P2, P3; the cube instance in the map will be 
> updated by t2
> # Then Thread t1 goes into P3; the cube instance in the map will be updated 
> by t1, which is not correct



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