Jira (PDB-5026) Report type filter causes error in subquery

1 view
Skip to first unread message

Austin Blatt (Jira)

unread,
Feb 16, 2021, 12:56:04 PM2/16/21
to puppe...@googlegroups.com
Austin Blatt created an issue
 
PuppetDB / Bug PDB-5026
Report type filter causes error in subquery
Issue Type: Bug Bug
Assignee: Unassigned
Created: 2021/02/16 9:55 AM
Priority: Normal Normal
Reporter: Austin Blatt

curl -X POST http://localhost:8080/pdb/query/v4   -H 'Content-Type:application/json'   -d '{"query": ["from", "nodes", ["in", "certname", ["from", "reports", ["extract", "certname"], ["limit", 1], ["order_by", [["certname", "desc"]]]]]] }'

Produces the AST with the agent filter in the proper spot.

["from" "nodes"
  ["and"
    ["in"
     "certname"
     ["from"
      "reports"
      ["extract" "certname" ["=" "type" "agent"]]
      ["limit" 1]
      ["order_by" [["certname" "desc"]]]]]
    ["=" "node_state" "active"]]]

But the query engine does not accept it, so somewhere in the query engine the context is not switched from nodes to reports when going into a subquery.

2021-02-16 09:52:01,746 ERROR [qtp2018597706-31] [p.p.query-eng] Error executing query '["from" "nodes" ["and" ["in" "certname" ["from" "reports" ["extract" "certname"] ["limit" 1] ["order_by" [["certname" "desc"]]]]] ["=" "node_state" "active"]]]' with query options '{:limit nil, :offset nil, :order_by nil, :node-purge-ttl #object[org.joda.time.Period 0x30cc2c0b "P14D"], :add-agent-report-filter true}'. Returning a 400 error code.
java.lang.IllegalArgumentException: 'type' is not a queryable object for nodes. Known queryable objects are 'cached_catalog_status', 'catalog_environment', 'catalog_timestamp', 'certname', 'deactivated', 'expired', 'facts_environment', 'facts_timestamp', 'latest_report_corrective_change', 'latest_report_hash', 'latest_report_job_id', 'latest_report_noop', 'latest_report_noop_pending', 'latest_report_status', 'report_environment', and 'report_timestamp'
        at puppetlabs.puppetdb.query_eng.engine$push_down_context.invokeStatic(engine.clj:2581)
        at puppetlabs.puppetdb.query_eng.engine$push_down_context.invoke(engine.clj:2570)
        at puppetlabs.puppetdb.query_eng.engine$compile_query.invokeStatic(engine.clj:2994)
        at puppetlabs.puppetdb.query_eng.engine$compile_query.invoke(engine.clj:2973)
        at puppetlabs.puppetdb.query_eng.engine$compile_user_query__GT_sql.invokeStatic(engine.clj:3017)
        at puppetlabs.puppetdb.query_eng.engine$compile_user_query__GT_sql.invoke(engine.clj:3010)
        at puppetlabs.puppetdb.query_eng$query__GT_sql$fn__34966.invoke(query_eng.clj:172)
        at puppetlabs.puppetdb.query_eng$maybe_log_sql.invokeStatic(query_eng.clj:109)
        at puppetlabs.puppetdb.query_eng$maybe_log_sql.invoke(query_eng.clj:104)
        at puppetlabs.puppetdb.query_eng$query__GT_sql.invokeStatic(query_eng.clj:123)
        at puppetlabs.puppetdb.query_eng$query__GT_sql.invoke(query_eng.clj:111)
        at puppetlabs.puppetdb.query_eng$deprecated_produce_streaming_body$fn__35123.invoke(query_eng.clj:418)
        at puppetlabs.puppetdb.jdbc$with_transacted_connection_fn$fn__28358$fn__28359.invoke(jdbc.clj:513)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:771)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:741)
        at puppetlabs.puppetdb.jdbc$with_transacted_connection_fn$fn__28358.invoke(jdbc.clj:512)
        at puppetlabs.puppetdb.jdbc$retry_sql$attempt__28352.invoke(jdbc.clj:471)
        at puppetlabs.puppetdb.jdbc$retry_sql.invokeStatic(jdbc.clj:481)
        at puppetlabs.puppetdb.jdbc$retry_sql.invoke(jdbc.clj:462)
        at puppetlabs.puppetdb.jdbc$with_transacted_connection_fn.invokeStatic(jdbc.clj:511)
        at puppetlabs.puppetdb.jdbc$with_transacted_connection_fn.invoke(jdbc.clj:503)
        at puppetlabs.puppetdb.query_eng$deprecated_produce_streaming_body.invokeStatic(query_eng.clj:414)
        at puppetlabs.puppetdb.query_eng$deprecated_produce_streaming_body.invoke(query_eng.clj:398)
        at puppetlabs.puppetdb.query_eng$eval35154$produce_streaming_body__35159$fn__35160.invoke(query_eng.clj:468)
        at puppetlabs.puppetdb.query_eng$eval35154$produce_streaming_body__35159.invoke(query_eng.clj:458)
        at
...
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
        at java.lang.Thread.run(Thread.java:748)

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v8.5.2#805002-sha1:a66f935)
Atlassian logo

Austin Blatt (Jira)

unread,
Feb 16, 2021, 12:57:03 PM2/16/21
to puppe...@googlegroups.com
Austin Blatt updated an issue
Change By: Austin Blatt
Method Found: Needs Assessment Manual Test

Austin Blatt (Jira)

unread,
Feb 16, 2021, 12:57:04 PM2/16/21
to puppe...@googlegroups.com
Austin Blatt updated an issue
{code}

curl -X POST http://localhost:8080/pdb/query/v4   -H 'Content-Type:application/json'   -d '{"query": ["from", "nodes", ["in", "certname", ["from", "reports", ["extract", "certname"], ["limit", 1], ["order_by", [["certname", "desc"]]]]]] }'
{code}



Produces the AST with the agent filter in the proper spot.
{code}

["from" "nodes"
  ["and"
    ["in"
     "certname"
     ["from"
      "reports"
      ["extract" "certname" ["=" "type" "agent"]]
      ["limit" 1]
      ["order_by" [["certname" "desc"]]]]]
    ["=" "node_state" "active"]]]
{code}



But the query engine does not accept it, so somewhere in the query engine the context is not switched from nodes to reports when going into a subquery.
{code}
        at
...
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)

        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
        at java.lang.Thread.run(Thread.java:748)
{code}

Austin Blatt (Jira)

unread,
Feb 16, 2021, 1:16:03 PM2/16/21
to puppe...@googlegroups.com
Austin Blatt updated an issue
Change By: Austin Blatt
Sprint: HAHA/Grooming

Andrei Filipovici (Jira)

unread,
Apr 19, 2021, 12:19:03 PM4/19/21
to puppe...@googlegroups.com
Andrei Filipovici updated an issue
Change By: Andrei Filipovici
Team: Ghost
This message was sent by Atlassian Jira (v8.13.2#813002-sha1:c495a97)
Atlassian logo

Oana Tanasoiu (Jira)

unread,
May 5, 2021, 9:43:02 AM5/5/21
to puppe...@googlegroups.com

Bogdan Irimie (Jira)

unread,
May 5, 2021, 9:47:03 AM5/5/21
to puppe...@googlegroups.com
Bogdan Irimie updated an issue
Change By: Bogdan Irimie
Sprint: HAHA/Grooming ghost-19.05.2021

Bogdan Irimie (Jira)

unread,
May 5, 2021, 10:29:02 AM5/5/21
to puppe...@googlegroups.com
Bogdan Irimie updated an issue
Change By: Bogdan Irimie
Sprint: ghost-19.05.2021 , HAHA/Grooming 2

Oana Tanasoiu (Jira)

unread,
May 14, 2021, 5:04:03 AM5/14/21
to puppe...@googlegroups.com
Oana Tanasoiu assigned an issue to Oana Tanasoiu
Change By: Oana Tanasoiu
Assignee: Oana Tanasoiu

Bogdan Irimie (Jira)

unread,
May 19, 2021, 3:35:05 AM5/19/21
to puppe...@googlegroups.com
Bogdan Irimie updated an issue
Change By: Bogdan Irimie
Sprint: ghost-19.05.2021, ghost-19.05.2021 , HAHA/Grooming 2

Bogdan Irimie (Jira)

unread,
Jun 2, 2021, 3:30:03 AM6/2/21
to puppe...@googlegroups.com
Bogdan Irimie updated an issue
Change By: Bogdan Irimie
Sprint: ghost-19.05.2021, ghost-19.05.2021, ghost-2.06.2021 , ready for triage 3

Bogdan Irimie (Jira)

unread,
Jun 9, 2021, 7:09:02 AM6/9/21
to puppe...@googlegroups.com
Bogdan Irimie updated an issue
Change By: Bogdan Irimie
Labels: requires_haha_review

Bogdan Irimie (Jira)

unread,
Jun 16, 2021, 3:17:03 AM6/16/21
to puppe...@googlegroups.com
Bogdan Irimie updated an issue
Change By: Bogdan Irimie
Sprint: ghost-19.05.2021, ghost-19.05.2021, ghost-2.06.2021, ghost-16.06.2021 , ready for triage 3

Bogdan Irimie (Jira)

unread,
Jun 30, 2021, 3:35:03 AM6/30/21
to puppe...@googlegroups.com
Bogdan Irimie updated an issue
Change By: Bogdan Irimie
Sprint: ghost-19.05.2021, ghost-19.05.2021, ghost-2.06.2021, ghost-16.06.2021, ghost-30.06.2021 , ready for triage 3

Rob Browning (Jira)

unread,
Jul 12, 2021, 8:03:03 PM7/12/21
to puppe...@googlegroups.com
Rob Browning updated an issue
Change By: Rob Browning
Fix Version/s: PDB 6.18.0
Fix Version/s: PDB 7.5.0
Reply all
Reply to author
Forward
0 new messages