File: auth-network-timeout-error.yml

package info (click to toggle)
ruby-mongo 2.23.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,020 kB
  • sloc: ruby: 110,810; makefile: 5
file content (138 lines) | stat: -rw-r--r-- 3,940 bytes parent folder | download
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
---
description: auth-network-timeout-error

schemaVersion: "1.10"

runOnRequirements:
  # failCommand appName requirements
  - minServerVersion: "4.4"
    auth: true
    serverless: forbid
    topologies: [ single, replicaset, sharded ]

createEntities:
  - client:
      id: &setupClient setupClient
      useMultipleMongoses: false

initialData: &initialData
  - collectionName: &collectionName auth-network-timeout-error
    databaseName: &databaseName sdam-tests
    documents:
      - _id: 1
      - _id: 2

tests:
  - description: Reset server and pool after network timeout error during authentication
    operations:
      - name: failPoint
        object: testRunner
        arguments:
          client: *setupClient
          failPoint:
            configureFailPoint: failCommand
            mode:
              times: 1
            data:
              failCommands:
                - saslContinue
              blockConnection: true
              blockTimeMS: 500
              appName: authNetworkTimeoutErrorTest
      - name: createEntities
        object: testRunner
        arguments:
          entities:
            - client:
                id: &client client
                useMultipleMongoses: false
                observeEvents:
                  - commandStartedEvent
                  - serverDescriptionChangedEvent
                  - poolClearedEvent
                uriOptions:
                  retryWrites: false
                  appname: authNetworkTimeoutErrorTest
                  # Set a short connect/socket timeout to ensure the fail point causes the
                  # connection establishment to timeout.
                  connectTimeoutMS: 250
                  socketTimeoutMS: 250
            - database:
                id: &database database
                client: *client
                databaseName: *databaseName
            - collection:
                id: &collection collection
                database: *database
                collectionName: *collectionName
      - name: insertMany
        object: *collection
        arguments:
          documents:
            - _id: 3
            - _id: 4
        expectError:
          isError: true
      - name: waitForEvent
        object: testRunner
        arguments:
          client: *client
          event:
            serverDescriptionChangedEvent:
              newDescription:
                type: Unknown
          count: 1
      - name: waitForEvent
        object: testRunner
        arguments:
          client: *client
          event:
            poolClearedEvent: {}
          count: 1
      # Perform another operation to ensure the node is rediscovered.
      - name: insertMany
        object: *collection
        arguments:
          documents:
            - _id: 5
            - _id: 6
      # Assert the server was marked Unknown and pool was cleared exactly once.
      - name: assertEventCount
        object: testRunner
        arguments:
          client: *client
          event:
            serverDescriptionChangedEvent:
              newDescription:
                type: Unknown
          count: 1
      - name: assertEventCount
        object: testRunner
        arguments:
          client: *client
          event:
            poolClearedEvent: {}
          count: 1
    expectEvents:
      # Note: The first insert command is never attempted because connection
      # checkout fails.
      - client: *client
        eventType: command
        events:
          - commandStartedEvent:
              command:
                insert: auth-network-timeout-error
                documents:
                  - _id: 5
                  - _id: 6
              commandName: insert
              databaseName: *databaseName

    outcome:
      - collectionName: *collectionName
        databaseName: *databaseName
        documents:
          - _id: 1
          - _id: 2
          - _id: 5
          - _id: 6