MB-X Bilibili Pipeline
6 days ago febaf381f00f1b157ae6d707f57e85018e1b9da7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import assert from "node:assert/strict";
import {EventEmitter} from "node:events";
 
class PendingWriteStream extends EventEmitter {
  constructor() {
    super();
    this.destroyed = false;
    this.writable = true;
    this.writableEnded = false;
    this.writableFinished = false;
  }
 
  write(_message, callback = null) {
    setImmediate(() => {
      const error = Object.assign(new Error("write EOF"), {code: "EOF"});
      if (typeof callback === "function") callback(error);
      else this.emit("error", error);
    });
    return true;
  }
}
 
async function extractedOrdering() {
  const stream = new PendingWriteStream();
  const onError = () => undefined;
  stream.on("error", onError);
  stream.write("frame");
  // Models finishProcessExitIfReady -> cleanupProcessListeners before the
  // pending Windows WriteWrap completion is delivered.
  stream.removeListener("error", onError);
  return await new Promise((resolve) => {
    process.once("uncaughtException", (error) => resolve(error.message === "write EOF"));
  });
}
 
async function boundedOrdering() {
  const stream = new PendingWriteStream();
  let fixedCode = null;
  const onError = () => { fixedCode = "E_NATIVE_PEER_CLOSED"; };
  stream.on("error", onError);
  await new Promise((resolve) => {
    stream.write("frame", (error) => {
      if (error?.message === "write EOF") fixedCode = "E_NATIVE_PEER_CLOSED";
      resolve();
    });
  });
  stream.removeListener("error", onError);
  return fixedCode;
}
 
assert.equal(true, await extractedOrdering());
assert.equal("E_NATIVE_PEER_CLOSED", await boundedOrdering());
process.stdout.write(JSON.stringify({old_ordering_uncaught: true, bounded_error_code: "E_NATIVE_PEER_CLOSED"}) + "\n");