Skip to content

Commit 669c6d1

Browse files
committed
code organization
1 parent 2a714ea commit 669c6d1

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

src/error.ts

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import type { Document, ObjectId } from './bson';
1+
import type { Document } from './bson';
22
import {
33
type ClientBulkWriteError,
44
type ClientBulkWriteResult
55
} from './operations/client_bulk_write/common';
66
import type { ServerType } from './sdam/common';
7-
import type { ServerDescription, TopologyVersion } from './sdam/server_description';
7+
import type { TopologyVersion } from './sdam/server_description';
88
import type { TopologyDescription } from './sdam/topology_description';
99

1010
/** @public */
@@ -355,18 +355,8 @@ export class MongoStalePrimaryError extends MongoRuntimeError {
355355
*
356356
* @public
357357
**/
358-
constructor(
359-
serverDescription: ServerDescription,
360-
maxSetVersion: number | null,
361-
maxElectionId: ObjectId | null,
362-
message?: string,
363-
options?: { cause?: Error }
364-
) {
365-
super(
366-
message ??
367-
`primary marked stale due to electionId/setVersion mismatch: server setVersion: ${serverDescription.setVersion}, server electionId: ${serverDescription.electionId}, topology setVersion: ${maxSetVersion}, topology electionId: ${maxElectionId}`,
368-
options
369-
);
358+
constructor(message: string, options?: { cause?: Error }) {
359+
super(message, options);
370360
}
371361

372362
override get name(): string {

src/sdam/topology_description.ts

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,19 @@ function updateRsFromPrimary(
376376
maxSetVersion: number | null = null,
377377
maxElectionId: ObjectId | null = null
378378
): [TopologyType, string | null, number | null, ObjectId | null] {
379+
const setVersionElectionIdMismatch = (
380+
serverDescription: ServerDescription,
381+
maxSetVersion: number | null,
382+
maxElectionId: ObjectId | null
383+
) => {
384+
return (
385+
`primary marked stale due to electionId/setVersion mismatch:` +
386+
` server setVersion: ${serverDescription.setVersion},` +
387+
` server electionId: ${serverDescription.electionId},` +
388+
` topology setVersion: ${maxSetVersion},` +
389+
` topology electionId: ${maxElectionId}`
390+
);
391+
};
379392
setName = setName || serverDescription.setName;
380393
if (setName !== serverDescription.setName) {
381394
serverDescriptions.delete(serverDescription.address);
@@ -401,7 +414,9 @@ function updateRsFromPrimary(
401414
serverDescriptions.set(
402415
serverDescription.address,
403416
new ServerDescription(serverDescription.address, undefined, {
404-
error: new MongoStalePrimaryError(serverDescription, maxSetVersion, maxElectionId)
417+
error: new MongoStalePrimaryError(
418+
setVersionElectionIdMismatch(serverDescription, maxSetVersion, maxElectionId)
419+
)
405420
})
406421
);
407422

@@ -419,7 +434,9 @@ function updateRsFromPrimary(
419434
serverDescriptions.set(
420435
serverDescription.address,
421436
new ServerDescription(serverDescription.address, undefined, {
422-
error: new MongoStalePrimaryError(serverDescription, maxSetVersion, maxElectionId)
437+
error: new MongoStalePrimaryError(
438+
setVersionElectionIdMismatch(serverDescription, maxSetVersion, maxElectionId)
439+
)
423440
})
424441
);
425442

@@ -446,9 +463,6 @@ function updateRsFromPrimary(
446463
address,
447464
new ServerDescription(server.address, undefined, {
448465
error: new MongoStalePrimaryError(
449-
serverDescription,
450-
maxSetVersion,
451-
maxElectionId,
452466
'primary marked stale due to discovery of newer primary'
453467
)
454468
})

0 commit comments

Comments
 (0)