Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: DelayError throwing in Child Processor breaks without Message #2962

Closed
1 task done
jpulec opened this issue Dec 10, 2024 · 0 comments · Fixed by #2967
Closed
1 task done

[Bug]: DelayError throwing in Child Processor breaks without Message #2962

jpulec opened this issue Dec 10, 2024 · 0 comments · Fixed by #2967
Labels
bug Something isn't working

Comments

@jpulec
Copy link

jpulec commented Dec 10, 2024

Version

v5.29.1

Platform

NodeJS

What happened?

Description

Throwing DelayedError doesn't work properly with child processor sandboxing, if you don't pass a message to the thrown error. This appears to be because when sending a message to the parent that a child failed, it checks if there's an err.message property, and if not, wraps the error with new Error(err) which causes the name property to be overwritten as Error so that the checks for err.name === 'DelayedError in the Worker class are incorrect.

How to reproduce.

// worker.js
import { pathToFileURL } from 'url';

const processorUrl = pathToFileURL(__dirname + '/my_processor.js');

worker = new Worker(queueName, processorUrl);
// my_processor.js
import { SandboxedJob } from 'bullmq';

module.exports = async (job: SandboxedJob) => {
   // Note the absense of a passed in message here
    throw new DelayedError();
};

Relevant log output

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
@jpulec jpulec added the bug Something isn't working label Dec 10, 2024
github-actions bot pushed a commit that referenced this issue Dec 18, 2024
## [5.34.3](v5.34.2...v5.34.3) (2024-12-18)

### Bug Fixes

* **sandboxed:** fix detecting special errors by sending default messages ([#2967](#2967)) fixes [#2962](#2962) ([52b0e34](52b0e34))
alexandresoro pushed a commit to alexandresoro/ouca that referenced this issue Dec 22, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bullmq](https://bullmq.io/) ([source](https://github.com/taskforcesh/bullmq)) | dependencies | minor | [`5.32.0` -> `5.34.4`](https://renovatebot.com/diffs/npm/bullmq/5.32.0/5.34.4) |

---

### Release Notes

<details>
<summary>taskforcesh/bullmq (bullmq)</summary>

### [`v5.34.4`](https://github.com/taskforcesh/bullmq/releases/tag/v5.34.4)

[Compare Source](taskforcesh/bullmq@v5.34.3...v5.34.4)

##### Bug Fixes

-   **sandbox:** fix issue where job could stay in active forever ([#&#8203;2979](taskforcesh/bullmq#2979)) ([c0a6bcd](taskforcesh/bullmq@c0a6bcd))

### [`v5.34.3`](https://github.com/taskforcesh/bullmq/releases/tag/v5.34.3)

[Compare Source](taskforcesh/bullmq@v5.34.2...v5.34.3)

##### Bug Fixes

-   **sandboxed:** fix detecting special errors by sending default messages ([#&#8203;2967](taskforcesh/bullmq#2967)) fixes [#&#8203;2962](taskforcesh/bullmq#2962) ([52b0e34](taskforcesh/bullmq@52b0e34))

### [`v5.34.2`](https://github.com/taskforcesh/bullmq/releases/tag/v5.34.2)

[Compare Source](taskforcesh/bullmq@v5.34.1...v5.34.2)

##### Bug Fixes

-   **scripts:** make sure jobs fields are not empty before unpack ([4360572](taskforcesh/bullmq@4360572))

### [`v5.34.1`](https://github.com/taskforcesh/bullmq/releases/tag/v5.34.1)

[Compare Source](taskforcesh/bullmq@v5.34.0...v5.34.1)

##### Bug Fixes

-   guarantee every repeatable jobs are slotted ([9917df1](taskforcesh/bullmq@9917df1))
-   **job-scheduler:** avoid duplicated delayed jobs when repeatable jobs are retried ([af75315](taskforcesh/bullmq@af75315))

### [`v5.34.0`](https://github.com/taskforcesh/bullmq/releases/tag/v5.34.0)

[Compare Source](taskforcesh/bullmq@v5.33.1...v5.34.0)

##### Features

-   **telemetry:** add option to omit context propagation on jobs ([#&#8203;2946](taskforcesh/bullmq#2946)) ([6514c33](taskforcesh/bullmq@6514c33))

### [`v5.33.1`](https://github.com/taskforcesh/bullmq/releases/tag/v5.33.1)

[Compare Source](taskforcesh/bullmq@v5.33.0...v5.33.1)

##### Bug Fixes

-   **job-scheduler:** omit deduplication and debounce options from template options ([#&#8203;2960](taskforcesh/bullmq#2960)) ([b5fa6a3](taskforcesh/bullmq@b5fa6a3))

### [`v5.33.0`](https://github.com/taskforcesh/bullmq/releases/tag/v5.33.0)

[Compare Source](taskforcesh/bullmq@v5.32.0...v5.33.0)

##### Features

-   replace multi by lua scripts in moveToFailed ([#&#8203;2958](taskforcesh/bullmq#2958)) ([c19c914](taskforcesh/bullmq@c19c914))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44MC4wIiwidXBkYXRlZEluVmVyIjoiMzkuODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Reviewed-on: https://git.tristess.app/alexandresoro/ouca/pulls/403
Reviewed-by: Alexandre Soro <code@soro.dev>
Co-authored-by: renovate <renovate@git.tristess.app>
Co-committed-by: renovate <renovate@git.tristess.app>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant