diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 057532433495d..a31dcd58f3b5d 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -612,7 +612,7 @@ jobs: cd packages/cubejs-testing/ export BIRDBOX_CUBEJS_VERSION=${{ matrix.tag }} export BIRDBOX_CUBEJS_REGISTRY_PATH=localhost:5000/ - export DEBUG=testcontainers + export DEBUG="testcontainers*" yarn run dataset:minimal yarn run birdbox:postgresql yarn run birdbox:postgresql-pre-aggregations diff --git a/packages/cubejs-client-ws-transport/src/index.ts b/packages/cubejs-client-ws-transport/src/index.ts index 947b47271f70e..685993c33eabe 100644 --- a/packages/cubejs-client-ws-transport/src/index.ts +++ b/packages/cubejs-client-ws-transport/src/index.ts @@ -90,7 +90,14 @@ class WebSocketTransport implements ITransport { } public async close(): Promise { + // TODO sync with timeout in sendMessage: either flush or drop + console.log("close call, left queue", this.messageQueue); if (this.ws) { + // Send everything queued + // This should be coherent with calling unsub and then close: unsub is async, but not actually synchonnizing, not on sendinig nor receiving ack + // TODO or drop it? Or unsubscribe cleanly? + this.ws.sendQueue(); + this.ws.close(); } } @@ -191,7 +198,12 @@ class WebSocketTransport implements ITransport { this.messageQueue.push(message); } + console.log("sendMessage call, message", message); + console.log("sendMessage call, queue before timeout", this.messageQueue); + setTimeout(async () => { + console.log("sendMessage call, message", message); + console.log("sendMessage call, queue after timeout", this.messageQueue); await this.initSocket(); this.ws.sendQueue(); }, 100); @@ -242,6 +254,8 @@ class WebSocketTransport implements ITransport { return callback(result, () => this.subscribe(callback)); }, async unsubscribe() { + // TODO await unsub from server + console.log("unsubscribe call: ", message.messageId); transport.sendMessage({ unsubscribe: message.messageId }); delete transport.messageIdToSubscription[message.messageId]; }