Skip to content

Commit

Permalink
[wrangler] chore: bump workerd to 1.20240314.0 (#5240)
Browse files Browse the repository at this point in the history
This commit bumps the `workerd` version to `1.20240314.0`,
and fixes some failing tests as a result of this bump.

Co-authored-by: Carmen Popoviciu <cpopoviciu@cloudflare.com>
  • Loading branch information
CarmenPopoviciu and Carmen Popoviciu committed Mar 18, 2024
1 parent 133a190 commit 1720f0a
Show file tree
Hide file tree
Showing 12 changed files with 65 additions and 50 deletions.
5 changes: 5 additions & 0 deletions .changeset/poor-tools-impress.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"miniflare": minor
---

chore: bump `workerd` to [`1.20240314.0`](https://github.com/cloudflare/workerd/releases/tag/v1.20240314.0)
4 changes: 2 additions & 2 deletions fixtures/dev-env/tests/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ describe("startDevWorker: ProxyController", () => {
});

res = await run.worker.fetch("http://dummy");
await expect(res.text()).resolves.toBe("Error: Boom!");
await expect(res.text()).resolves.toMatch(/^Error: Boom!/);

await new Promise((r) => setTimeout(r, 100)); // allow some time for the error to be logged (TODO: replace with retry/waitUntil helper)
expect(consoleErrorSpy).toBeCalledWith(
Expand All @@ -372,7 +372,7 @@ describe("startDevWorker: ProxyController", () => {
});

res = await run.worker.fetch("http://dummy");
await expect(res.text()).resolves.toBe("Error: Boom 2!");
await expect(res.text()).resolves.toMatch(/^Error: Boom 2!/);

await new Promise((r) => setTimeout(r, 100)); // allow some time for the error to be logged (TODO: replace with retry/waitUntil helper)
expect(consoleErrorSpy).toBeCalledWith(
Expand Down
2 changes: 1 addition & 1 deletion fixtures/vitest-pool-workers-examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"devDependencies": {
"@cloudflare/vitest-pool-workers": "workspace:*",
"@cloudflare/workers-types": "^4.20240208.0",
"@cloudflare/workers-types": "^4.20240314.0",
"@types/node": "20.8.3",
"jose": "^5.2.2",
"miniflare": "workspace:*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ it("consumes queue messages", async () => {
];
const result = await SELF.queue("queue", messages);
expect(result.outcome).toBe("ok");
expect(result.retryAll).toBe(false); // `true` if `batch.retryAll()` called
expect(result.retryBatch.retry).toBe(false); // `true` if `batch.retryAll()` called
expect(result.ackAll).toBe(false); // `true` if `batch.ackAll()` called
expect(result.explicitRetries).toStrictEqual([]);
expect(result.retryMessages).toStrictEqual([]);
expect(result.explicitAcks).toStrictEqual([messages[0].id, messages[1].id]);

expect(await env.QUEUE_RESULTS.get("/1")).toBe("ONE");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ it("consumes queue messages", async () => {
// `getQueueResult()` implicitly calls `waitOnExecutionContext()`
const result = await getQueueResult(batch, ctx);
expect(result.outcome).toBe("ok");
expect(result.retryAll).toBe(false); // `true` if `batch.retryAll()` called
expect(result.retryBatch.retry).toBe(false); // `true` if `batch.retryAll()` called
expect(result.ackAll).toBe(false); // `true` if `batch.ackAll()` called
expect(result.explicitRetries).toStrictEqual([]);
expect(result.retryMessages).toStrictEqual([]);
expect(result.explicitAcks).toStrictEqual([messages[0].id, messages[1].id]);

expect(await env.QUEUE_RESULTS.get("/1")).toBe("ONE");
Expand Down
4 changes: 2 additions & 2 deletions packages/miniflare/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,15 @@
"glob-to-regexp": "^0.4.1",
"stoppable": "^1.1.0",
"undici": "^5.28.2",
"workerd": "1.20240304.0",
"workerd": "1.20240314.0",
"ws": "^8.11.0",
"youch": "^3.2.2",
"zod": "^3.20.6"
},
"devDependencies": {
"@ava/typescript": "^4.0.0",
"@cloudflare/kv-asset-handler": "workspace:*",
"@cloudflare/workers-types": "^4.20231002.0",
"@cloudflare/workers-types": "^4.20240314.0",
"@microsoft/api-extractor": "^7.36.3",
"@types/debug": "^4.1.7",
"@types/estree": "^1.0.0",
Expand Down
10 changes: 5 additions & 5 deletions packages/miniflare/src/workers/queues/broker.worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ const DEFAULT_RETRIES = 2;

const exceptionQueueResponse: FetcherQueueResult = {
outcome: "exception",
retryAll: false,
retryBatch: { retry: false, },
ackAll: false,
explicitRetries: [],
retryMessages: [],
explicitAcks: [],
};

Expand Down Expand Up @@ -232,14 +232,14 @@ export class QueueBrokerObject extends MiniflareDurableObject<QueueBrokerObjectE

// Get messages to retry. If dispatching the batch failed for any reason,
// retry all messages.
const retryAll = response.retryAll || response.outcome !== "ok";
const explicitRetries = new Set(response.explicitRetries);
const retryAll = response.retryBatch.retry || response.outcome !== "ok";
const retryMessagesIds = new Set(response.retryMessages.map(msg => msg.msgId));

let failedMessages = 0;
const toRetry: QueueMessage[] = [];
const toDeadLetterQueue: QueueMessage[] = [];
for (const message of batch) {
if (retryAll || explicitRetries.has(message.id)) {
if (retryAll || retryMessagesIds.has(message.id)) {
failedMessages++;
const failedAttempts = message.incrementFailedAttempts();
if (failedAttempts < maxAttempts) {
Expand Down
14 changes: 9 additions & 5 deletions packages/miniflare/test/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -914,7 +914,7 @@ test("Miniflare: python modules", async (t) => {
type: "PythonModule",
path: "index.py",
contents:
"from test_module import add; from js import Response;\ndef fetch(request):\n return Response.new(add(2,2))",
"from test_module import add; from js import Response;\ndef on_fetch(request):\n return Response.new(add(2,2))",
},
{
type: "PythonModule",
Expand Down Expand Up @@ -1180,21 +1180,25 @@ test("Miniflare: getWorker() allows dispatching events directly", async (t) => {
]);
t.deepEqual(queueResult, {
outcome: "ok",
retryAll: true,
ackAll: false,
explicitRetries: [],
retryBatch: {
retry: true,
},
explicitAcks: [],
retryMessages: [],
});
queueResult = await fetcher.queue("queue", [
{ id: "c", timestamp: new Date(3000), body: new Uint8Array([1, 2, 3]) },
{ id: "perfect", timestamp: new Date(4000), body: new Date(5000) },
]);
t.deepEqual(queueResult, {
outcome: "ok",
retryAll: false,
ackAll: false,
explicitRetries: [],
retryBatch: {
retry: false
},
explicitAcks: ["perfect"],
retryMessages: [],
});

res = await fetcher.fetch("http://localhost/queue");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class TestD1PreparedStatement implements D1PreparedStatement {
return this.db[kSend]("/prepare/all", this);
}

raw<T = unknown>(): Promise<T[]> {
raw<T = unknown>(): Promise<[string[], ...T[]]> {
return this.db[kSend]("/prepare/raw", this);
}
}
Expand Down
2 changes: 1 addition & 1 deletion packages/vitest-pool-workers/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"devDependencies": {
"@cloudflare/eslint-config-worker": "workspace:*",
"@cloudflare/workers-tsconfig": "workspace:*",
"@cloudflare/workers-types": "^4.20231121.0",
"@cloudflare/workers-types": "^4.20240314.0",
"@types/node": "20.8.3",
"capnp-ts": "^0.7.0",
"capnpc-ts": "^0.7.0",
Expand Down
10 changes: 6 additions & 4 deletions packages/vitest-pool-workers/src/worker/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -341,17 +341,19 @@ export async function getQueueResult(
}
await waitOnExecutionContext(ctx);

const explicitRetries: string[] = [];
const retryMessages: QueueRetryMessage[] = [];
const explicitAcks: string[] = [];
for (const message of batch.messages) {
if (message[kRetry]) explicitRetries.push(message.id);
if (message[kRetry]) retryMessages.push({ msgId: message.id });
if (message[kAck]) explicitAcks.push(message.id);
}
return {
outcome: "ok",
retryAll: batch[kRetryAll],
retryBatch: {
retry: batch[kRetryAll],
},
ackAll: batch[kAckAll],
explicitRetries,
retryMessages,
explicitAcks,
};
}
54 changes: 29 additions & 25 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1720f0a

Please sign in to comment.