Hi Junkai, Thanks for your suggestion. You have captured most of the parts correctly. There are two jobs as job1 and job2. And there is a dependency that job2 depends on job1. Until job1 is completed job2 should not be scheduled. And task 1 in job 1 is calling that method and it is not updating anyone's content. It's just putting and value in workflow level. What do you mean my keeping a key-value store in workflow level? I already use that key value store given by helix by calling putUserContent method.
public void sendNextJob(String jobId) { putUserContent(WORKFLOW_STARTED, "TRUE", Scope.WORKFLOW); if (jobId != null) { putUserContent(NEXT_JOB, jobId, Scope.WORKFLOW); } } Dimuthu On Fri, Nov 9, 2018 at 2:48 PM Xue Junkai <junkai....@gmail.com> wrote: > In my understanding, it could be you have job1 and job2. The task running > in job1 tries to update content for job2. Then, there could be a race > condition happening here that job2 is not scheduled. > > If that's the case, I suggest you can put key-value store at workflow level > since this is cross-job operation. > > Best, > > Junkai > > On Fri, Nov 9, 2018 at 11:45 AM DImuthu Upeksha < > dimuthu.upeks...@gmail.com> > wrote: > > > Hi Junkai, > > > > This method is being called inside a running task. And it is working for > > most of the time. I only saw this in 2 occasions for last few months and > > both of them happened today and yesterday. > > > > Thanks > > Dimuthu > > > > On Fri, Nov 9, 2018 at 2:40 PM Xue Junkai <junkai....@gmail.com> wrote: > > > > > User content store node will be created one the job has been scheduled. > > In > > > your case, I think the job is not scheduled. This method usually has > been > > > utilized in running task. > > > > > > Best, > > > > > > Junkai > > > > > > On Fri, Nov 9, 2018 at 8:19 AM DImuthu Upeksha < > > dimuthu.upeks...@gmail.com > > > > > > > wrote: > > > > > > > Hi Helix Folks, > > > > > > > > I'm having this sporadic issue in some tasks of our workflows when we > > try > > > > to store a value in the workflow context and I have added both code > > > section > > > > and error message below. Do you have an idea what's causing this? > > Please > > > > let me know if you need further information. We are using Helix 0.8.2 > > > > > > > > public void sendNextJob(String jobId) { > > > > putUserContent(WORKFLOW_STARTED, "TRUE", Scope.WORKFLOW); > > > > if (jobId != null) { > > > > putUserContent(NEXT_JOB, jobId, Scope.WORKFLOW); > > > > } > > > > } > > > > > > > > Failed to setup environment of task > > > > TASK_55096de4-2cb6-4b09-84fd-7fdddba93435 > > > > java.lang.NullPointerException: null > > > > at org.apache.helix.task.TaskUtil$1.update(TaskUtil.java:358) > > > > at org.apache.helix.task.TaskUtil$1.update(TaskUtil.java:356) > > > > at > > > > > > > > > > > > > > org.apache.helix.manager.zk.HelixGroupCommit.commit(HelixGroupCommit.java:126) > > > > at > > > > > > > > > > > > > > org.apache.helix.manager.zk.ZkCacheBaseDataAccessor.update(ZkCacheBaseDataAccessor.java:306) > > > > at > > > > > > > > > > > > > > org.apache.helix.store.zk.AutoFallbackPropertyStore.update(AutoFallbackPropertyStore.java:61) > > > > at > > > > > > > > > > org.apache.helix.task.TaskUtil.addWorkflowJobUserContent(TaskUtil.java:356) > > > > at > > > > > > > > > > > > > > org.apache.helix.task.UserContentStore.putUserContent(UserContentStore.java:78) > > > > at > > > > > > > > > > > > > > org.apache.airavata.helix.core.AbstractTask.sendNextJob(AbstractTask.java:136) > > > > at > > org.apache.airavata.helix.core.OutPort.invoke(OutPort.java:42) > > > > at > > > > > > > > > > > > > > org.apache.airavata.helix.core.AbstractTask.onSuccess(AbstractTask.java:123) > > > > at > > > > > > > > > > > > > > org.apache.airavata.helix.impl.task.AiravataTask.onSuccess(AiravataTask.java:97) > > > > at > > > > > > > > > > > > > > org.apache.airavata.helix.impl.task.env.EnvSetupTask.onRun(EnvSetupTask.java:52) > > > > at > > > > > > > > > > > > > > org.apache.airavata.helix.impl.task.AiravataTask.onRun(AiravataTask.java:349) > > > > at > > > > org.apache.airavata.helix.core.AbstractTask.run(AbstractTask.java:92) > > > > at org.apache.helix.task.TaskRunner.run(TaskRunner.java:71) > > > > at > > > > > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > > > > at > > > > > > > > > > > > > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > > > > at > > > > > > > > > > > > > > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > > > > at > > > > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > > > > at > > > > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > > > > at java.lang.Thread.run(Thread.java:748) > > > > > > > > Thanks > > > > Dimuthu > > > > > > > > > > > > > -- > > > Junkai Xue > > > > > > > > -- > Junkai Xue >