apache / apache/pulsar-client-node
Exceptions like client.close/subscription.close cannot be catched
- Vorherrschende Sprache
- C++
- Sterne
- 164
- Forks
- 98
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Not sure what would be better here, that either the exception should be catchable or it should be idempotent.
```javascript
const Pulsar = require("pulsar-client");
const STAGING = {
serviceUrl: "pulsar+ssl://any-server:6651",
};
async function main() {
const client = new Pulsar.Client({
...STAGING,
logLevel: Pulsar.LogLevel.ERROR,
log: (level, file, line, message) => {
console.log(`[${level}] ${file}:${line}: ${message}`);
},
});
try {
await client.close();
await client.close();
} catch (error) {
console.error("omg closing client:", error);
}
}
main();
```
```json
{
"dependencies": {
"pulsar-client": "^1.14.0"
}
}
```
Will throw
```
node error-report.js
node:internal/process/promises:391
triggerUncaughtException(err, true /* fromPromise */);
^
[Error: Failed to close client: AlreadyClosed]
Node.js v20.18.1
```
Even though I catched it
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginnen Sie damit, den doppelten client.close()-Aufruf aus error-report.js mit pulsar-client 1.14.0 unter Node.js 20.18.1 zu reproduzieren. Untersuchen Sie anschließend die Einstiegspunkte client.close und subscription.close sowie, wie deren Fehler das Promise erreichen. Als erledigt gilt die Aufgabe, wenn der Fehler abgefangen werden kann oder wiederholte close-Aufrufe sicher idempotent sind und das Verhalten anhand des gemeldeten Beispiels verifiziert wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, node.js
- Bereich
- distributed-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100