cuddlefish-app / cuddlefish

GitHub comments for human beings
cuddlefish.vercel.app
0 stars 0 forks source link

Query is too large when loading threads for some files #21

Open samuela opened 2 years ago

samuela commented 2 years ago
  ERR [Extension Host] Error: database query error
    at new ApolloError2 (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:20604:28)
    at /Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:22323:41
    at both (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:16897:24)
    at /Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:16888:30
    at new Promise (<anonymous>)
    at Object.then (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:16887:20)
    at Object.next (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:16899:43)
    at notifySubscription (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15409:17)
    at onNotify (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15453:7)
    at SubscriptionObserver2.next (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15495:11)
    at /Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:16877:27
    at Array.forEach (<anonymous>)
    at iterateObserversSafely (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:16876:27)
    at Object.next (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:16969:15)
    at notifySubscription (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15409:17)
    at onNotify (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15453:7)
    at SubscriptionObserver2.next (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15495:11)
    at notifySubscription (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15409:17)
    at onNotify (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15453:7)
    at SubscriptionObserver2.next (/Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:15495:11)
    at /Users/samuelainsworth/.vscode/extensions/cuddlefish-app.cuddlefish-comments-0.0.11/out/extension.js:17653:22
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

I think the query may just be too large on some files. In the hasura logs I'm seeing something like

Nov 18 03:22:10 PM  mmit_hash\") = (($44073)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44074)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44075)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44076)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44077)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44078)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44079)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44080)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44081)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44082)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44083)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44084)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44085)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44086)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44087)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44088)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44089)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44090)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44091)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44092)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44093)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44094)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44095)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44096)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44097)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44098)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44099)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44100)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44101)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44102)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44103)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44104)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44105)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44106)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44107)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44108)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44109)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44110)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44111)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44112)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44113)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44114)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44115)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44116)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44117)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44118)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44119)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44120)::text)) AND (((\"public\".\"lines\".\"commit_hash\") = (($44121)::text)) AND ((\"public\".\"lines\".\"line_number\") = (($44122)::integer)))) OR ((((\"public\".\"lines\".\"file_path\") = (($44123)::text)) AND (((\"public\".\"lines
...
samuela commented 2 years ago

Possible solutions:

samuela commented 2 years ago

Turns out that this is not necessarily limited to crazy big files... Just hit this on https://github.com/cuddlefish-app/cuddlefish/blob/4669b4de4c302085247e90f8d2d26c4694ac6de4/next/src/server/github.ts I believe.

samuela commented 2 years ago

This is not fixed. Could be because we aren't deduping the (commit, file path) values

samuela commented 2 years ago

There don't seem to be any errors in the Hasura logs. Just got this in a diff view for incoming_email_webhook