Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

oneClick with more than one filter column with a catPlot in does not work #6187

Closed
cpwright opened this issue Oct 9, 2024 · 1 comment · Fixed by #6199
Closed

oneClick with more than one filter column with a catPlot in does not work #6187

cpwright opened this issue Oct 9, 2024 · 1 comment · Fixed by #6199
Assignees
Labels
bug Something isn't working core Core development tasks
Milestone

Comments

@cpwright
Copy link
Contributor

cpwright commented Oct 9, 2024

Description

In a Core+ worker, the following script produces an error related to Execution contexts. Failed in both 0.35.2 and an earlier version (TBD).

// This works ok
source = db.historicalTable("DbInternal", "AuditEventLog").where("Date=`2024-10-08`", "!isNull(ClientUuid)").tail(10000)
oc = oneClick(source, "ServerHost", "ClientHost")
plot = plot("Plot", oc, "Timestamp", "ClientPort")
    .show()


// This also works
source_bad = db.historicalTable("DbInternal", "AuditEventLog").where("Date=`2024-10-08`", "!isNull(ClientUuid)")
oc_bad = oneClick(source_bad, "ServerHost")
newPlot = catPlot("Performance", oc_bad, "Timestamp", "ClientPort")
    .show()


// Does not work
source_bad = db.historicalTable("DbInternal", "AuditEventLog").where("Date=`2024-10-08`", "!isNull(ClientUuid)")
oc_bad = oneClick(source_bad, "ServerHost", "ClientHost")
newPlot = catPlot("Performance", oc_bad, "Timestamp", "ClientPort")
    .show()
r-Scheduler-Serial-1 | .c.ConsoleServiceGrpcImpl | Error running script: io.deephaven.engine.exceptions.TableInitializationException: Error while initializing Update([__CONSTITUENT__]): an exception occurred while performing the initial select or update
	at io.deephaven.engine.table.impl.QueryTable.lambda$selectOrUpdate$32(QueryTable.java:1563)
	at io.deephaven.engine.table.impl.perf.QueryPerformanceRecorder.withNugget(QueryPerformanceRecorder.java:369)
	at io.deephaven.engine.table.impl.QueryTable.lambda$selectOrUpdate$33(QueryTable.java:1500)
	at io.deephaven.engine.table.impl.QueryTable.memoizeResult(QueryTable.java:3639)
	at io.deephaven.engine.table.impl.QueryTable.selectOrUpdate(QueryTable.java:1499)
	at io.deephaven.engine.table.impl.QueryTable.update(QueryTable.java:1477)
	at io.deephaven.engine.table.impl.QueryTable.update(QueryTable.java:100)
	at io.deephaven.engine.table.impl.partitioned.PartitionedTableImpl.transform(PartitionedTableImpl.java:298)
	at io.deephaven.engine.table.PartitionedTable.transform(PartitionedTable.java:230)
	at io.deephaven.plot.filters.SelectableDataSetOneClick.transform(SelectableDataSetOneClick.java:144)
	at io.deephaven.plot.AxesImpl.getAggregatedSelectableDataSet(AxesImpl.java:282)
	at io.deephaven.plot.AxesImpl.catPlot(AxesImpl.java:1758)
	at io.deephaven.plot.FigureImpl.catPlot(FigureImpl.java:750)
	at io.deephaven.plot.FigureImpl.catPlot(FigureImpl.java:51)
	at io.deephaven.plot.PlottingConvenience.catPlot(PlottingConvenience.java:768)
	at io.deephaven.plot.PlottingConvenience$catPlot$1.callStatic(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:258)
	at io.deephaven.dynamic.Script_23.run(Script_23.groovy:4)
	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:427)
	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:461)
	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:436)
	at io.deephaven.engine.util.GroovyDeephavenSession.lambda$evaluate$0(GroovyDeephavenSession.java:352)
	at io.deephaven.util.locks.FunctionalLock.doLockedInterruptibly(FunctionalLock.java:51)
	at io.deephaven.engine.util.GroovyDeephavenSession.evaluate(GroovyDeephavenSession.java:352)
	at io.deephaven.engine.util.AbstractScriptSession.lambda$evaluateScript$0(AbstractScriptSession.java:165)
	at io.deephaven.engine.context.ExecutionContext.lambda$apply$0(ExecutionContext.java:196)
	at io.deephaven.engine.context.ExecutionContext.apply(ExecutionContext.java:207)
	at io.deephaven.engine.context.ExecutionContext.apply(ExecutionContext.java:195)
	at io.deephaven.engine.util.AbstractScriptSession.evaluateScript(AbstractScriptSession.java:165)
	at io.deephaven.enterprise.dnd.modules.GroovyConsoleSessionWithDatabaseModule$ScriptSessionWrapper.evaluateScript(GroovyConsoleSessionWithDatabaseModule.java:117)
	at io.deephaven.engine.util.DelegatingScriptSession.evaluateScript(DelegatingScriptSession.java:72)
	at io.deephaven.engine.util.ScriptSession.evaluateScript(ScriptSession.java:75)
	at io.deephaven.server.console.ConsoleServiceGrpcImpl.lambda$executeCommand$4(ConsoleServiceGrpcImpl.java:193)
	at io.deephaven.server.session.SessionState$ExportBuilder.lambda$submit$2(SessionState.java:1537)
	at io.deephaven.server.session.SessionState$ExportObject.doExport(SessionState.java:995)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at io.deephaven.server.runner.scheduler.SchedulerModule$ThreadFactory.lambda$newThread$0(SchedulerModule.java:100)
	at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: io.deephaven.util.ExecutionContextRegistrationException: No ExecutionContext registered, or current ExecutionContext has no QueryCompiler
	at io.deephaven.util.ExecutionContextRegistrationException.onFailedComponentAccess(ExecutionContextRegistrationException.java:29)
	at io.deephaven.engine.context.PoisonedQueryCompiler.fail(PoisonedQueryCompiler.java:17)
	at io.deephaven.engine.context.PoisonedQueryCompiler.compile(PoisonedQueryCompiler.java:24)
	at io.deephaven.engine.context.QueryCompiler.compile(QueryCompiler.java:48)
	at io.deephaven.engine.context.QueryCompiler.compile(QueryCompiler.java:23)
	at io.deephaven.engine.table.impl.by.typed.TypedHasherFactory.make(TypedHasherFactory.java:570)
	at io.deephaven.engine.table.impl.by.typed.TypedHasherFactory.make(TypedHasherFactory.java:75)
	at io.deephaven.engine.table.impl.by.ChunkedOperatorAggregationHelper.makeStateManager(ChunkedOperatorAggregationHelper.java:337)
	at io.deephaven.engine.table.impl.by.ChunkedOperatorAggregationHelper.lambda$aggregation$6(ChunkedOperatorAggregationHelper.java:188)
	at io.deephaven.engine.table.impl.by.ChunkedOperatorAggregationHelper.aggregation(ChunkedOperatorAggregationHelper.java:192)
	at io.deephaven.engine.table.impl.by.ChunkedOperatorAggregationHelper.lambda$aggregation$2(ChunkedOperatorAggregationHelper.java:134)
	at io.deephaven.engine.table.impl.BaseTable.initializeWithSnapshot(BaseTable.java:1293)
	at io.deephaven.engine.table.impl.by.ChunkedOperatorAggregationHelper.lambda$aggregation$3(ChunkedOperatorAggregationHelper.java:131)
	at io.deephaven.engine.liveness.LivenessScopeStack.computeEnclosed(LivenessScopeStack.java:179)
	at io.deephaven.engine.table.impl.by.ChunkedOperatorAggregationHelper.aggregation(ChunkedOperatorAggregationHelper.java:119)
	at io.deephaven.engine.table.impl.by.ChunkedOperatorAggregationHelper.aggregation(ChunkedOperatorAggregationHelper.java:74)
	at io.deephaven.engine.table.impl.QueryTable.lambda$aggNoMemo$18(QueryTable.java:845)
	at io.deephaven.engine.table.impl.perf.QueryPerformanceRecorder.withNugget(QueryPerformanceRecorder.java:369)
	at io.deephaven.engine.table.impl.QueryTable.aggNoMemo(QueryTable.java:844)
	at io.deephaven.engine.table.impl.QueryTable.lambda$aggBy$17(QueryTable.java:820)
	at io.deephaven.engine.table.impl.QueryTable$MemoizedResult.getOrCompute(QueryTable.java:3674)
	at io.deephaven.engine.table.impl.QueryTable.memoizeResult(QueryTable.java:3643)
	at io.deephaven.engine.table.impl.QueryTable.aggBy(QueryTable.java:820)
	at io.deephaven.engine.table.impl.QueryTable.aggBy(QueryTable.java:100)
	at io.deephaven.api.TableOperationsDefaults.aggBy(TableOperationsDefaults.java:337)
	at io.deephaven.plot.AxesImpl.lambda$getAggregatedSelectableDataSet$0(AxesImpl.java:281)
	at io.deephaven.engine.table.impl.partitioned.PartitionedTableImpl.lambda$assertResultsStatic$8(PartitionedTableImpl.java:428)
	at io.deephaven.engine.table.impl.partitioned.TableTransformationColumn$OutputFormula.transformAndFill(TableTransformationColumn.java:153)
	at io.deephaven.engine.table.impl.partitioned.TableTransformationColumn$OutputFormula.fillChunk(TableTransformationColumn.java:132)
	at io.deephaven.engine.table.impl.sources.ViewColumnSource.fillChunk(ViewColumnSource.java:219)
	at io.deephaven.engine.table.impl.select.analyzers.SelectColumnLayer.doApplyUpdate(SelectColumnLayer.java:413)
	at io.deephaven.engine.table.impl.select.analyzers.SelectColumnLayer.lambda$doParallelApplyUpdate$3(SelectColumnLayer.java:281)
	at io.deephaven.engine.util.systemicmarking.SystemicObjectTracker.executeSystemically(SystemicObjectTracker.java:56)
	at io.deephaven.engine.table.impl.select.analyzers.SelectColumnLayer.doParallelApplyUpdate(SelectColumnLayer.java:280)
	at io.deephaven.engine.table.impl.select.analyzers.SelectColumnLayer.lambda$prepareParallelUpdate$0(SelectColumnLayer.java:247)
	at io.deephaven.engine.table.impl.util.JobScheduler.lambda$iterateParallel$1(JobScheduler.java:356)
	at io.deephaven.engine.table.impl.util.JobScheduler$IterationManager$TaskInvoker.execute(JobScheduler.java:258)
	at io.deephaven.engine.table.impl.util.JobScheduler$IterationManager.lambda$startTasks$0(JobScheduler.java:164)
	at io.deephaven.engine.table.impl.util.OperationInitializerJobScheduler.lambda$submit$0(OperationInitializerJobScheduler.java:40)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at io.deephaven.engine.context.ExecutionContext.lambda$apply$0(ExecutionContext.java:196)
	at io.deephaven.engine.context.ExecutionContext.apply(ExecutionContext.java:207)
	at io.deephaven.engine.context.ExecutionContext.apply(ExecutionContext.java:195)
	at io.deephaven.engine.table.impl.OperationInitializationThreadPool$1.lambda$newThread$0(OperationInitializationThreadPool.java:45)
	... 1 more

More details are in JIRA DH-17896.

@cpwright cpwright added bug Something isn't working triage labels Oct 9, 2024
@rcaudy rcaudy added core Core development tasks and removed triage labels Oct 9, 2024
@rcaudy rcaudy added this to the 0.37.0 milestone Oct 9, 2024
@niloc132
Copy link
Member

Python DHC example that repros this:

t = empty_table(10).update(["A=i % 3", "B = i % 5", "C = i % 7"])
oc = one_click(t, by=["B", "C"])
p = Figure().plot_cat(t=oc, category="A", y="B", series_name="Series").x_axis(format_pattern="yyyy-MM").show()

Groovy DHC:

t = emptyTable(10).update("A=i % 3", "B = i % 5", "C = i % 7")
oc = oneClick(t, "B", "C")
p = catPlot("Series", oc, "A", "C").show()

niloc132 added a commit to niloc132/deephaven-core that referenced this issue Oct 14, 2024
niloc132 added a commit that referenced this issue Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working core Core development tasks
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants