Skip to content

Uh-oh. Error! in logs on questdb 6.7 #2954

@mariusgheorghies

Description

@mariusgheorghies

Describe the bug

Received the following stack trace in logs:

2023-01-27T18:01:57.584921Z I i.q.c.h.p.JsonQueryProcessorState [89] exec [q='WITH all_transactions AS (
  SELECT ts, wallet_address, token_address, sent, received, hash as transaction_id, 'eth' as chain, workspace FROM 'eth_transactions'
  UNION ALL
  SELECT ts, wallet_address, token_address, sent, received, signature as transaction_id, 'sol' as chain, workspace from 'sol_transactions'
), transactions_90_days_ago AS (
  SELECT wallet_address, count() FROM all_transactions WHERE ts BETWEEN dateadd('d', -180, now()) and dateadd('d', -90, now())
), transactions_90_days AS (
  SELECT wallet_address, count() FROM all_transactions WHERE ts >= dateadd('d', -90, now())
), balance as (
  SELECT wallet_address, balance FROM balance WHERE token_address = ('SOL') LATEST ON ts PARTITION BY wallet_address
), balance_all_tokens_native as (
  SELECT wallet_address, balance FROM balance LATEST ON ts PARTITION BY wallet_address
)
SELECT wallet_address, balance FROM balance LATEST ON ts PARTITION BY wallet_address
-- EXPLAIN SELECT * FROM transactions_90_days_ago
-- SELECT wallet_address, chain, transactions_90d 
-- FROM all_transactions LATEST ON ts PARTITION BY wallet_address
']
2023-01-27T18:01:57.584947Z I i.q.c.h.p.QueryCache miss [thread=questdb-shared-2, sql=WITH all_transactions AS (
  SELECT ts, wallet_address, token_address, sent, received, hash as transaction_id, 'eth' as chain, workspace FROM 'eth_transactions'
  UNION ALL
  SELECT ts, wallet_address, token_address, sent, received, signature as transaction_id, 'sol' as chain, workspace from 'sol_transactions'
), transactions_90_days_ago AS (
  SELECT wallet_address, count() FROM all_transactions WHERE ts BETWEEN dateadd('d', -180, now()) and dateadd('d', -90, now())
), transactions_90_days AS (
  SELECT wallet_address, count() FROM all_transactions WHERE ts >= dateadd('d', -90, now())
), balance as (
  SELECT wallet_address, balance FROM balance WHERE token_address = ('SOL') LATEST ON ts PARTITION BY wallet_address
), balance_all_tokens_native as (
  SELECT wallet_address, balance FROM balance LATEST ON ts PARTITION BY wallet_address
)
SELECT wallet_address, balance FROM balance LATEST ON ts PARTITION BY wallet_address
-- EXPLAIN SELECT * FROM transactions_90_days_ago
-- SELECT wallet_address, chain, transactions_90d 
-- FROM all_transactions LATEST ON ts PARTITION BY wallet_address
]
2023-01-27T18:01:57.683972Z C i.q.c.h.p.JsonQueryProcessorState [89] Uh-oh. Error!
java.lang.StackOverflowError
	at io.questdb.std.Chars.lowerCaseAsciiHashCode(Chars.java:595)
	at io.questdb.std.AbstractLowerCaseAsciiCharSequenceHashSet.keyIndex(AbstractLowerCaseAsciiCharSequenceHashSet.java:65)
	at io.questdb.std.LowerCaseAsciiCharSequenceObjHashMap.get(LowerCaseAsciiCharSequenceObjHashMap.java:62)
	at io.questdb.griffin.ExpressionParser.parseExpr(ExpressionParser.java:953)
	at io.questdb.griffin.SqlParser.expr(SqlParser.java:2132)
	at io.questdb.griffin.SqlParser.parseSelectClause(SqlParser.java:1558)
	at io.questdb.griffin.SqlParser.parseDml0(SqlParser.java:867)
	at io.questdb.griffin.SqlParser.parseDml(SqlParser.java:794)
	at io.questdb.griffin.SqlParser.parseAsSubQuery(SqlParser.java:2194)
	at io.questdb.griffin.SqlParser.parseAsSubQueryAndExpectClosingBrace(SqlParser.java:350)
	at io.questdb.griffin.SqlParser.parseWith(SqlParser.java:1811)
	at io.questdb.griffin.SqlParser.parseSelectFrom(SqlParser.java:1685)
	at io.questdb.griffin.SqlParser.parseFromClause(SqlParser.java:1088)
	at io.questdb.griffin.SqlParser.parseDml0(SqlParser.java:899)
	at io.questdb.griffin.SqlParser.parseDml(SqlParser.java:794)
	at io.questdb.griffin.SqlParser.parseAsSubQuery(SqlParser.java:2194)
	at io.questdb.griffin.SqlParser.parseAsSubQueryAndExpectClosingBrace(SqlParser.java:350)
	at io.questdb.griffin.SqlParser.parseWith(SqlParser.java:1811)
	at io.questdb.griffin.SqlParser.parseSelectFrom(SqlParser.java:1685)
	at io.questdb.griffin.SqlParser.parseFromClause(SqlParser.java:1088)
	at io.questdb.griffin.SqlParser.parseDml0(SqlParser.java:899)
	at io.questdb.griffin.SqlParser.parseDml(SqlParser.java:794)
	at io.questdb.griffin.SqlParser.parseAsSubQuery(SqlParser.java:2194)
	at io.questdb.griffin.SqlParser.parseAsSubQueryAndExpectClosingBrace(SqlParser.java:350)
	at io.questdb.griffin.SqlParser.parseWith(SqlParser.java:1811)
	at io.questdb.griffin.SqlParser.parseSelectFrom(SqlParser.java:1685)
	at io.questdb.griffin.SqlParser.parseFromClause(SqlParser.java:1088)
	at io.questdb.griffin.SqlParser.parseDml0(SqlParser.java:899)
	at io.questdb.griffin.SqlParser.parseDml(SqlParser.java:794)
	at io.questdb.griffin.SqlParser.parseAsSubQuery(SqlParser.java:2194)
	at io.questdb.griffin.SqlParser.parseAsSubQueryAndExpectClosingBrace(SqlParser.java:350)
	at io.questdb.griffin.SqlParser.parseWith(SqlParser.java:1811)
	at io.questdb.griffin.SqlParser.parseSelectFrom(SqlParser.java:1685)
	at io.questdb.griffin.SqlParser.parseFromClause(SqlParser.java:1088)
	at io.questdb.griffin.SqlParser.parseDml0(SqlParser.java:899)
	at io.questdb.griffin.SqlParser.parseDml(SqlParser.java:794)
	at io.questdb.griffin.SqlParser.parseAsSubQuery(SqlParser.java:2194)
	at io.questdb.griffin.SqlParser.parseAsSubQueryAndExpectClosingBrace(SqlParser.java:350)
	at io.questdb.griffin.SqlParser.parseWith(SqlParser.java:1811)
	at io.questdb.griffin.SqlParser.parseSelectFrom(SqlParser.java:1685)
	at io.questdb.griffin.SqlParser.parseFromClause(SqlParser.java:1088)
	at io.questdb.griffin.SqlParser.parseDml0(SqlParser.java:899)
	at io.questdb.griffin.SqlParser.parseDml(SqlParser.java:794)
	at io.questdb.griffin.SqlParser.parseAsSubQuery(SqlParser.java:2194)
	at io.questdb.griffin.SqlParser.parseAsSubQueryAndExpectClosingBrace(SqlParser.java:350)
	at io.questdb.griffin.SqlParser.parseWith(SqlParser.java:1811)
	at io.questdb.griffin.SqlParser.parseSelectFrom(SqlParser.java:1685)
	at io.questdb.griffin.SqlParser.parseFromClause(SqlParser.java:1088)
	at io.questdb.griffin.SqlParser.parseDml0(SqlParser.java:899)
	at io.questdb.griffin.SqlParser.parseDml(SqlParser.java:794)
	at io.questdb.griffin.SqlParser.parseAsSubQuery(SqlParser.java:2194)
	at io.questdb.griffin.SqlParser.parseAsSubQueryAndExpectClosingBrace(SqlParser.java:350)
	at io.questdb.griffin.SqlParser.parseWith(SqlParser.java:1811)
	at io.questdb.griffin.SqlParser.parseSelectFrom(SqlParser.java:1685)
	at io.questdb.griffin.SqlParser.parseFromClause(SqlParser.java:1088)
	at i2023-01-27T18:01:57.685045Z I i.q.c.h.HttpConnectionContext kicked out [fd=89]
2023-01-27T18:01:57.685048Z I http-server scheduling disconnect [fd=89, reason=5]
2023-01-27T18:01:57.685115Z I http-server disconnected [ip=10.2.18.56, fd=89, src=queue]

To reproduce

query that triggered the error:

WITH all_transactions AS (
  SELECT ts, wallet_address, token_address, sent, received, hash as transaction_id, 'eth' as chain, workspace FROM 'eth_transactions'
  UNION ALL
  SELECT ts, wallet_address, token_address, sent, received, signature as transaction_id, 'sol' as chain, workspace from 'sol_transactions'
), transactions_90_days_ago AS (
  SELECT wallet_address, count() FROM all_transactions WHERE ts BETWEEN dateadd('d', -180, now()) and dateadd('d', -90, now())
), transactions_90_days AS (
  SELECT wallet_address, count() FROM all_transactions WHERE ts >= dateadd('d', -90, now())
), balance as (
  SELECT wallet_address, balance FROM balance WHERE token_address = ('SOL') LATEST ON ts PARTITION BY wallet_address
), balance_all_tokens_native as (
  SELECT wallet_address, balance FROM balance LATEST ON ts PARTITION BY wallet_address
)
SELECT wallet_address, balance FROM balance LATEST ON ts PARTITION BY wallet_address
-- EXPLAIN SELECT * FROM transactions_90_days_ago
-- SELECT wallet_address, chain, transactions_90d 
-- FROM all_transactions LATEST ON ts PARTITION BY wallet_address

Expected Behavior

No response

Environment

- **QuestDB version**: 6.7
- **OS**: linux
- **Browser**: N/A

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugIncorrect or unexpected behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions