bson 4.13.0-java → 4.15.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,9 +12,12 @@ server_url = "http://downloads.10gen.com/linux/mongodb-linux-x86_64-enterprise-#
12
12
  server_archive_basename = File.basename(server_url)
13
13
  server_extracted_dir = server_archive_basename.sub(/\.(tar\.gz|tgz)$/, '')
14
14
 
15
- toolchain_upper='291ba4a4e8297f142796e70eee71b99f333e35e1'
15
+ TOOLCHAIN_VERSION='35fb9fb797a941094bf4ee8678284da88849435c'
16
+
17
+ def ruby_toolchain_url(ruby)
18
+ "http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/#{TOOLCHAIN_VERSION}/#{distro}/#{ruby}.tar.xz"
19
+ end
16
20
 
17
- ruby_toolchain_url = "http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/ruby-toolchain-#{distro}-#{toolchain_upper}.tar.xz"
18
21
  #ruby_toolchain_url = "https://s3.amazonaws.com//mciuploads/mongo-ruby-toolchain/#{distro}/#{toolchain_upper}/mongo_ruby_driver_toolchain_#{distro.gsub('-', '_')}_patch_#{toolchain_upper}_#{toolchain_lower}.tar.gz"
19
22
 
20
23
  %>
@@ -55,9 +58,10 @@ FROM <%= base_image %>
55
58
  # Ruby runtime dependencies: libyaml-0-2
56
59
  # Compiling ruby libraries: gcc make
57
60
  # Compiling pyhton packages: python2.7-dev
58
- # JRuby: openjdk-8-jre-headless
61
+ # JRuby: openjdk-8-jdk-headless
59
62
  # Server dependencies: libsnmp30 libcurl3/libcurl4
60
63
  # Determining OS we are running on: lsb-release
64
+ # Load balancer testing: haproxy
61
65
  # Kerberos testing: krb5-user
62
66
  # Local Kerberos server: krb5-kdc krb5-admin-server
63
67
  # Installing mlaunch from git: git
@@ -65,8 +69,9 @@ FROM <%= base_image %>
65
69
  # nio4r on JRuby: libgmp-dev
66
70
  # Snappy compression: libsnappy-dev
67
71
  # nokogiri: zlib1g-dev
68
- # Mongoid testing: tzdata
72
+ # Mongoid testing: tzdata shared-mime-info
69
73
  # Mongoid application testing: nodejs (8.x or newer)
74
+ # Test suite: procps for ps (to kill JRubies)
70
75
  #
71
76
  # We currently use Python 2-compatible version of mtools, which
72
77
  # is installable via pip (which uses Python 2). All of the MongoDB
@@ -74,22 +79,44 @@ FROM <%= base_image %>
74
79
  # therefore install python-pip in all configurations here.
75
80
 
76
81
  <% packages = %w(
77
- lsb-release bzip2 curl zsh
82
+ procps lsb-release bzip2 curl zsh
78
83
  git make gcc libyaml-0-2 libgmp-dev zlib1g-dev libsnappy-dev
79
- libsnmp30
80
84
  krb5-user krb5-kdc krb5-admin-server libsasl2-dev libsasl2-modules-gssapi-mit
81
- python-pip python2.7-dev python3-pip
82
- tzdata
85
+ haproxy
86
+ python3-pip
87
+ tzdata shared-mime-info
83
88
  ) %>
84
89
 
85
- # ubuntu1404 only has openjdk-7-jre-headless
86
- <% if distro !~ /ubuntu1404/ %>
87
- <% packages << 'openjdk-8-jre-headless' %>
90
+ <% if distro =~ /ubuntu1404/ %>
91
+ # For building python & setuptools
92
+ <% packages += %w(libssl-dev unzip) %>
93
+ <% end %>
94
+
95
+ <% if distro !~ /ubuntu2004/ %>
96
+ <% packages += %w(python2.7-dev) %>
97
+ <% end %>
98
+
99
+ <% if distro =~ /ubuntu2004/ %>
100
+ <% packages << 'libsnmp35' %>
101
+ <% else %>
102
+ <% packages << 'libsnmp30' %>
103
+ <% end %>
104
+
105
+ <% if distro !~ /ubuntu2004/ %>
106
+ <% packages << 'python-pip' %>
107
+ <% end %>
108
+
109
+ <% if distro =~ /debian10/ %>
110
+ <% packages << 'openjdk-11-jdk-headless' %>
111
+ <% elsif distro =~ /ubuntu1404/ %>
112
+ # Ubuntu 14.04 only has openjdk 7, this is too old to be useful
113
+ <% else %>
114
+ <% packages << 'openjdk-8-jdk-headless' %>
88
115
  <% end %>
89
116
 
90
117
  # ubuntu1404, ubuntu1604: libcurl3
91
- # ubuntu1804: libcurl4
92
- <% if distro =~ /ubuntu1804/ %>
118
+ # ubuntu1804, ubuntu2004, debian10: libcurl4
119
+ <% if distro =~ /ubuntu1804|ubuntu2004|debian10/ %>
93
120
  <% packages << 'libcurl4' %>
94
121
  <% else %>
95
122
  <% packages << 'libcurl3' %>
@@ -99,9 +126,36 @@ FROM <%= base_image %>
99
126
  <% packages << 'nodejs' %>
100
127
  <% end %>
101
128
 
129
+ <% if distro =~ /ubuntu2004/ %>
130
+ <% packages += %w(ruby ruby2.7 bundler python2 python2-dev) %>
131
+ <% end %>
132
+
102
133
  RUN apt-get update && apt-get install -y <%= packages.join(' ') %>
103
134
  <% else %>
104
135
 
136
+ <% if distro =~ /rhel6/ %>
137
+
138
+ # CentOS 6 is dead - to use it retrieve the packages from vault:
139
+ # https://stackoverflow.com/questions/53562691/error-cannot-retrieve-repository-metadata-repomd-xml-for-repository-base-pl
140
+
141
+ <%
142
+
143
+ cfg = <<-CFG
144
+ [base]
145
+ name=CentOS-$releasever - Base
146
+ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
147
+ #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
148
+ baseurl=http://vault.centos.org/6.10/os/x86_64/
149
+ gpgcheck=1
150
+ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
151
+ CFG
152
+
153
+ %>
154
+
155
+ RUN printf "<%= cfg.gsub("\n", "\\n") %>" >/etc/yum.repos.d/CentOS-Base.repo
156
+
157
+ <% end %>
158
+
105
159
  # Enterprise server: net-snmp
106
160
  # lsb_release: redhat-lsb-core
107
161
  # our runner scripts: which
@@ -118,7 +172,7 @@ FROM <%= base_image %>
118
172
 
119
173
  RUN yum install -y redhat-lsb-core which git gcc libyaml krb5-server \
120
174
  krb5-workstation cyrus-sasl-devel cyrus-sasl-gssapi java-1.8.0-openjdk \
121
- net-snmp
175
+ net-snmp python3
122
176
 
123
177
  <% if distro =~ /rhel6/ %>
124
178
 
@@ -134,32 +188,34 @@ FROM <%= base_image %>
134
188
  RUN yum install -y python-devel
135
189
 
136
190
  <% end %>
137
-
191
+
138
192
  <% end %>
139
193
 
140
194
  <% if preload? %>
141
195
 
142
- # Current virtualenv fails with
143
- # https://github.com/pypa/virtualenv/issues/1630
144
- RUN python2 -m pip install 'virtualenv<20' 'mtools-legacy[mlaunch]'
145
-
146
- RUN pip --version && \
147
- pip install mtools-legacy[mlaunch]
148
-
149
- <% if @env.fetch('MONGODB_VERSION') >= '4.4' %>
150
- RUN python3 -mpip install asn1crypto oscrypto flask
151
- <% end %>
152
-
153
- <% unless ruby_head? %>
154
-
155
- RUN curl --retry 3 -fL <%= ruby_toolchain_url %> |tar -xC /opt -Jf -
156
- ENV PATH=/opt/rubies/<%= ruby %>/bin:$PATH \
157
- USE_OPT_TOOLCHAIN=1
158
- #ENV PATH=/opt/rubies/python/3/bin:$PATH
159
-
160
- <% end %>
161
-
162
- <% if distro =~ /rhel|ubuntu1604/ %>
196
+ <% if distro =~ /ubuntu1404/ %>
197
+
198
+ # I couldn't find a prebuilt package of anything more recent than 2.7.6
199
+ # for 14.04.
200
+ RUN curl --retry 3 -fL https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tar.xz | \
201
+ tar xfJ - && \
202
+ cd Python-2.7.16 && \
203
+ ./configure && \
204
+ nice make -j4 && \
205
+ make install && \
206
+ cd .. && rm -rf Python-2.7.16
207
+
208
+ ENV PATH=/usr/local/bin:$PATH
209
+
210
+ RUN curl --retry 3 -fL -o setuptools-44.1.1.zip https://files.pythonhosted.org/packages/b2/40/4e00501c204b457f10fe410da0c97537214b2265247bc9a5bc6edd55b9e4/setuptools-44.1.1.zip && \
211
+ unzip setuptools-44.1.1.zip && \
212
+ cd setuptools-44.1.1 && \
213
+ python setup.py install && \
214
+ cd .. && rm -rf setuptools-44.1.1
215
+
216
+ <% end%>
217
+
218
+ <% if true || distro =~ /rhel|ubuntu1604/ %>
163
219
 
164
220
  # Ubuntu 12.04 ships pip 1.0 which is ancient and does not work.
165
221
  #
@@ -173,7 +229,42 @@ FROM <%= base_image %>
173
229
  # therefore install it the manual way.
174
230
  #
175
231
  # https://pip.pypa.io/en/stable/installing/
176
- RUN curl --retry 3 -fL https://bootstrap.pypa.io/pip/2.7/get-pip.py | python
232
+ RUN curl --retry 3 -fL https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2
233
+
234
+ <% end %>
235
+
236
+ # Current virtualenv fails with
237
+ # https://github.com/pypa/virtualenv/issues/1630
238
+ <% if distro =~ /ubuntu2004/ %>
239
+ RUN python3 -m pip install 'virtualenv<20' 'mtools-legacy[mlaunch]'
240
+ <% else %>
241
+ RUN python2 -m pip install 'virtualenv<20' 'mtools-legacy[mlaunch]'
242
+ <% end %>
243
+
244
+ RUN pip --version && \
245
+ pip install mtools-legacy[mlaunch]
246
+
247
+ <% if @env.fetch('MONGODB_VERSION') >= '4.4' %>
248
+ # ubuntu1604 installs MarkupSafe 0.0.0 here instead of 2.0.0+
249
+ # as specified by dependencies, causing OCSP mock to not work.
250
+ RUN python3 -mpip install asn1crypto oscrypto flask --upgrade
251
+ <% end %>
252
+
253
+ # FLE is tested against 4.0+ servers.
254
+ <% if @env.fetch('MONGODB_VERSION') >= '4.0' %>
255
+ # Requirements in drivers-evergreen-tools:
256
+ # boto3~=1.19 cryptography~=3.4.8 pykmip~=0.10.0
257
+ # cryptography does not install due to lacking setuptools_rust
258
+ # (either that version or anything that isn't part of system packages)
259
+ RUN python3 -mpip install boto3~=1.19 cryptography pykmip~=0.10.0
260
+ <% end %>
261
+
262
+ <% unless ruby_head? || system_ruby? %>
263
+
264
+ RUN curl --retry 3 -fL <%= ruby_toolchain_url(ruby) %> |tar -xC /opt -Jf -
265
+ ENV PATH=/opt/rubies/<%= ruby %>/bin:$PATH \
266
+ USE_OPT_TOOLCHAIN=1
267
+ #ENV PATH=/opt/rubies/python/3/bin:$PATH
177
268
 
178
269
  <% end %>
179
270
 
@@ -183,6 +274,14 @@ FROM <%= base_image %>
183
274
 
184
275
  <% end %>
185
276
 
277
+ <% if distro =~ /debian|ubuntu/ %>
278
+ # mkdir was moved from /usr/bin to /bin and MongoDB's distros
279
+ # apparently keep using the old location.
280
+ # This definitely affects debian10.
281
+ # https://stackoverflow.com/questions/64653051/make-usr-bin-mkdir-command-not-found-during-gem-install-nokogiri-in-ubuntu
282
+ RUN test -f /usr/bin/mkdir || ln -s /bin/mkdir /usr/bin/mkdir
283
+ <% end %>
284
+
186
285
  WORKDIR /app
187
286
 
188
287
  <% if preload? && !ruby_head? %>
@@ -193,17 +292,25 @@ WORKDIR /app
193
292
  COPY lib/<%= project_lib_subdir %>/version.rb lib/<%= project_lib_subdir %>/version.rb
194
293
  RUN bundle install
195
294
  COPY .evergreen/patch-debuggers .evergreen/patch-debuggers
196
- RUN .evergreen/patch-debuggers /opt/rubies
295
+ <% if system_ruby? %>
296
+ # Running under docker with root access
297
+ RUN .evergreen/patch-debuggers /var/lib/gems
298
+ <% else %>
299
+ RUN .evergreen/patch-debuggers /opt/rubies
300
+ <% end %>
197
301
 
198
302
  <% end %>
199
303
 
200
304
  <% if fle? %>
201
- RUN curl --retry 3 -fLo libmongocrypt-all.tar.gz "https://s3.amazonaws.com/mciuploads/libmongocrypt/all/master/latest/libmongocrypt-all.tar.gz"
202
- RUN tar xf libmongocrypt-all.tar.gz
305
+ RUN curl --retry 3 -fL "https://s3.amazonaws.com/mciuploads/libmongocrypt/all/master/latest/libmongocrypt-all.tar.gz" |tar zxf -
203
306
 
204
307
  <%= "ENV LIBMONGOCRYPT_PATH #{libmongocrypt_path}" %>
205
308
  <% end %>
206
309
 
310
+ <% if preload? %>
311
+ ENV DOCKER_PRELOAD=1
312
+ <% end %>
313
+
207
314
  ENV MONGO_ORCHESTRATION_HOME=/tmpfs \
208
315
  PROJECT_DIRECTORY=/app \
209
316
  <%= @env.map { |k, v| %Q`#{k}="#{v.gsub('$', "\\$").gsub('"', "\\\"")}"` }.join(" \\\n ") %>
@@ -0,0 +1,16 @@
1
+ # Modeled after
2
+ # https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/run-load-balancer.sh
3
+
4
+ defaults
5
+ mode tcp
6
+ timeout connect 7s
7
+ timeout client 55s
8
+ timeout server 55s
9
+
10
+ frontend mongos_frontend
11
+ bind *:27017
12
+ use_backend mongos_backend
13
+
14
+ backend mongos_backend
15
+ mode tcp
16
+ server mongos_one 127.0.0.1:27117 check
@@ -0,0 +1,17 @@
1
+ # Modeled after
2
+ # https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/run-load-balancer.sh
3
+
4
+ defaults
5
+ mode tcp
6
+ timeout connect 7s
7
+ timeout client 55s
8
+ timeout server 55s
9
+
10
+ frontend mongos_frontend
11
+ bind *:27017
12
+ use_backend mongos_backend
13
+
14
+ backend mongos_backend
15
+ mode tcp
16
+ server mongos_one 127.0.0.1:27117 check
17
+ server mongos_two 127.0.0.1:27118 check
@@ -13,7 +13,8 @@ _detect_distro() {
13
13
  if test -f /etc/debian_version; then
14
14
  # Debian or Ubuntu
15
15
  if test "`uname -m`" = aarch64; then
16
- distro=ubuntu1604-arm
16
+ release=`lsb_release -rs |tr -d .`
17
+ distro="ubuntu$release"-arm
17
18
  elif lsb_release -is |grep -q Debian; then
18
19
  release=`lsb_release -rs |tr -d .`
19
20
  # In docker, release is something like 9.11.
@@ -10,21 +10,21 @@ set_fcv() {
10
10
 
11
11
  add_uri_option() {
12
12
  opt=$1
13
-
13
+
14
14
  if ! echo $MONGODB_URI |sed -e s,//,, |grep -q /; then
15
15
  MONGODB_URI="$MONGODB_URI/"
16
16
  fi
17
-
17
+
18
18
  if ! echo $MONGODB_URI |grep -q '?'; then
19
19
  MONGODB_URI="$MONGODB_URI?"
20
20
  fi
21
-
21
+
22
22
  MONGODB_URI="$MONGODB_URI&$opt"
23
23
  }
24
24
 
25
25
  prepare_server() {
26
26
  arch=$1
27
-
27
+
28
28
  if test -n "$USE_OPT_MONGODB"; then
29
29
  export BINDIR=/opt/mongodb/bin
30
30
  export PATH=$BINDIR:$PATH
@@ -39,7 +39,7 @@ prepare_server() {
39
39
  else
40
40
  download_version="$MONGODB_VERSION"
41
41
  fi
42
-
42
+
43
43
  url=`$(dirname $0)/get-mongodb-download-url $download_version $arch`
44
44
 
45
45
  prepare_server_from_url $url
@@ -80,7 +80,7 @@ install_mlaunch_pip() {
80
80
  # mlaunch is preinstalled in the docker image, do not install it here
81
81
  return
82
82
  fi
83
-
83
+
84
84
  python -V || true
85
85
  python3 -V || true
86
86
  pythonpath="$MONGO_ORCHESTRATION_HOME"/python
@@ -96,20 +96,20 @@ install_mlaunch_git() {
96
96
  python3 -V || true
97
97
  which pip || true
98
98
  which pip3 || true
99
-
99
+
100
100
  if false; then
101
101
  if ! virtualenv --version; then
102
102
  python3 `which pip3` install --user virtualenv
103
103
  export PATH=$HOME/.local/bin:$PATH
104
104
  virtualenv --version
105
105
  fi
106
-
106
+
107
107
  venvpath="$MONGO_ORCHESTRATION_HOME"/venv
108
108
  virtualenv -p python3 $venvpath
109
109
  . $venvpath/bin/activate
110
-
110
+
111
111
  pip3 install psutil pymongo
112
-
112
+
113
113
  git clone $repo mlaunch
114
114
  cd mlaunch
115
115
  git checkout origin/$branch
@@ -118,13 +118,13 @@ install_mlaunch_git() {
118
118
  else
119
119
  pip install --user 'virtualenv==13'
120
120
  export PATH=$HOME/.local/bin:$PATH
121
-
121
+
122
122
  venvpath="$MONGO_ORCHESTRATION_HOME"/venv
123
123
  virtualenv $venvpath
124
124
  . $venvpath/bin/activate
125
-
125
+
126
126
  pip install psutil pymongo
127
-
127
+
128
128
  git clone $repo mlaunch
129
129
  (cd mlaunch &&
130
130
  git checkout origin/$branch &&
@@ -133,24 +133,32 @@ install_mlaunch_git() {
133
133
  fi
134
134
  }
135
135
 
136
+ # This function sets followong global variables:
137
+ # server_cert_path
138
+ # server_ca_path
139
+ # server_client_cert_path
140
+ #
141
+ # These variables are used later to connect to processes via mongo client.
136
142
  calculate_server_args() {
137
143
  local mongo_version=`echo $MONGODB_VERSION |tr -d .`
138
-
144
+
139
145
  if test -z "$mongo_version"; then
140
146
  echo "$MONGODB_VERSION must be set and not contain only dots" 1>&2
141
147
  exit 3
142
148
  fi
143
-
149
+
144
150
  if test $mongo_version = latest; then
145
151
  mongo_version=49
146
152
  fi
147
153
 
148
154
  local args="--setParameter enableTestCommands=1"
149
-
150
- if test $mongo_version -ge 47; then
155
+
156
+ if test $mongo_version -ge 50; then
157
+ args="$args --setParameter acceptApiVersion2=1"
158
+ elif test $mongo_version -ge 47; then
151
159
  args="$args --setParameter acceptAPIVersion2=1"
152
160
  fi
153
-
161
+
154
162
  # diagnosticDataCollectionEnabled is a mongod-only parameter on server 3.2,
155
163
  # and mlaunch does not support specifying mongod-only parameters:
156
164
  # https://github.com/rueckstiess/mtools/issues/696
@@ -160,15 +168,31 @@ calculate_server_args() {
160
168
  fi
161
169
  local uri_options=
162
170
  if test "$TOPOLOGY" = replica-set; then
163
- args="$args --replicaset --name ruby-driver-rs --nodes 2 --arbiter"
171
+ args="$args --replicaset --name test-rs --nodes 2 --arbiter"
164
172
  export HAVE_ARBITER=1
165
173
  elif test "$TOPOLOGY" = sharded-cluster; then
166
- args="$args --replicaset --nodes 2 --sharded 1 --name ruby-driver-rs"
174
+ args="$args --replicaset --nodes 2 --sharded 1 --name test-rs"
167
175
  if test -z "$SINGLE_MONGOS"; then
168
176
  args="$args --mongos 2"
169
177
  fi
170
- else
178
+ elif test "$TOPOLOGY" = standalone; then
171
179
  args="$args --single"
180
+ elif test "$TOPOLOGY" = load-balanced; then
181
+ args="$args --replicaset --nodes 2 --sharded 1 --name test-rs --port 27117"
182
+ if test -z "$MRSS_ROOT"; then
183
+ echo "Please set MRSS_ROOT" 1>&2
184
+ exit 2
185
+ fi
186
+ if test -n "$SINGLE_MONGOS"; then
187
+ haproxy_config=$MRSS_ROOT/share/haproxy-1.conf
188
+ else
189
+ args="$args --mongos 2"
190
+ haproxy_config=$MRSS_ROOT/share/haproxy-2.conf
191
+ fi
192
+ uri_options="$uri_options&loadBalanced=true"
193
+ else
194
+ echo "Unknown topology: $TOPOLOGY" 1>&2
195
+ exit 1
172
196
  fi
173
197
  if test -n "$MMAPV1"; then
174
198
  args="$args --storageEngine mmapv1 --smallfiles --noprealloc"
@@ -191,7 +215,6 @@ calculate_server_args() {
191
215
  fi
192
216
  fi
193
217
 
194
- local server_cert_path server_ca_path server_client_cert_path
195
218
  if test "$SSL" = ssl || test -n "$OCSP_ALGORITHM"; then
196
219
  if test -n "$OCSP_ALGORITHM"; then
197
220
  if test "$OCSP_MUST_STAPLE" = 1; then
@@ -270,7 +293,7 @@ calculate_server_args() {
270
293
  ocsp_args="$ocsp_args --fault $OCSP_STATUS"
271
294
  fi
272
295
  fi
273
-
296
+
274
297
  OCSP_ARGS="$ocsp_args"
275
298
  SERVER_ARGS="$args"
276
299
  URI_OPTIONS="$uri_options"
@@ -287,4 +310,58 @@ launch_ocsp_mock() {
287
310
  launch_server() {
288
311
  local dbdir="$1"
289
312
  python -m mtools.mlaunch.mlaunch --dir "$dbdir" --binarypath "$BINDIR" $SERVER_ARGS
313
+
314
+ if test "$TOPOLOGY" = sharded-cluster && test $MONGODB_VERSION = 3.6; then
315
+ # On 3.6 server the sessions collection is not immediately available,
316
+ # so we run the refreshLogicalSessionCacheNow command on the config server
317
+ # and again on each mongos in order for the mongoses
318
+ # to correctly report logicalSessionTimeoutMinutes.
319
+ mongos_regex="\s*mongos\s+([0-9]+)\s+running\s+[0-9]+"
320
+ config_server_regex="\s*config\sserver\s+([0-9]+)\s+running\s+[0-9]+"
321
+ config_server=""
322
+ mongoses=()
323
+ if test "$AUTH" = auth
324
+ then
325
+ base_url="mongodb://bob:pwd123@localhost"
326
+ else
327
+ base_url="mongodb://localhost"
328
+ fi
329
+ if test "$SSL" = "ssl"
330
+ then
331
+ mongo_command="${BINDIR}/mongo --ssl --sslPEMKeyFile $server_cert_path --sslCAFile $server_ca_path"
332
+ else
333
+ mongo_command="${BINDIR}/mongo"
334
+ fi
335
+
336
+ while read -r line
337
+ do
338
+ if [[ $line =~ $config_server_regex ]]
339
+ then
340
+ port="${BASH_REMATCH[1]}"
341
+ config_server="${base_url}:${port}"
342
+ fi
343
+ if [[ $line =~ $mongos_regex ]]
344
+ then
345
+ port="${BASH_REMATCH[1]}"
346
+ mongoses+=("${base_url}:${port}")
347
+ fi
348
+ done < <(python -m mtools.mlaunch.mlaunch list --dir "$dbdir" --binarypath "$BINDIR")
349
+
350
+ if [ -n "$config_server" ]; then
351
+ ${mongo_command} "$config_server" --eval 'db.adminCommand("refreshLogicalSessionCacheNow")'
352
+ for mongos in ${mongoses[*]}
353
+ do
354
+ ${mongo_command} "$mongos" --eval 'db.adminCommand("refreshLogicalSessionCacheNow")'
355
+ done
356
+ fi
357
+ fi
358
+
359
+ if test "$TOPOLOGY" = load-balanced; then
360
+ if test -z "$haproxy_config"; then
361
+ echo haproxy_config should have been set 1>&2
362
+ exit 3
363
+ fi
364
+
365
+ haproxy -D -f $haproxy_config -p $mongodb_dir/haproxy.pid
366
+ fi
290
367
  }
@@ -1,4 +1,4 @@
1
- TOOLCHAIN_VERSION=289d4bec7c61e88000cea582c05fd8073b932122
1
+ TOOLCHAIN_VERSION=43b0b8a644363c4052b9bf8221320a1828fe01a5
2
2
 
3
3
  set_env_java() {
4
4
  ls -l /opt || true
@@ -9,13 +9,13 @@ set_env_java() {
9
9
  export JAVACMD=/opt/java/jdk8/bin/java
10
10
  #export PATH=$PATH:/opt/java/jdk8/bin
11
11
  fi
12
-
12
+
13
13
  # ppc64le has it in a different place
14
14
  if test -z "$JAVACMD" && [ -f /usr/lib/jvm/java-1.8.0/bin/java ]; then
15
15
  export JAVACMD=/usr/lib/jvm/java-1.8.0/bin/java
16
16
  #export PATH=$PATH:/usr/lib/jvm/java-1.8.0/bin
17
17
  fi
18
-
18
+
19
19
  if true; then
20
20
  # newer
21
21
  # rhel71-ppc, https://jira.mongodb.org/browse/BUILD-9231
@@ -34,7 +34,7 @@ set_env_java() {
34
34
  # we will try the /usr/lib/jvm then
35
35
  fi
36
36
  fi
37
-
37
+
38
38
  if test -n "$JAVACMD"; then
39
39
  eval $JAVACMD -version
40
40
  elif which java 2>/dev/null; then
@@ -68,15 +68,18 @@ set_env_ruby() {
68
68
  export PATH=`pwd`/ruby-head/bin:`pwd`/ruby-head/lib/ruby/gems/2.6.0/bin:$PATH
69
69
  ruby --version
70
70
  ruby --version |grep dev
71
+ elif test "$SYSTEM_RUBY" = 1; then
72
+ # Nothing
73
+ :
71
74
  else
72
75
  if test "$USE_OPT_TOOLCHAIN" = 1; then
73
- # nothing, also PATH is already set
76
+ # Nothing, also PATH is already set
74
77
  :
75
78
  elif true; then
76
79
 
77
80
  # For testing toolchains:
78
81
  #toolchain_url=https://s3.amazonaws.com//mciuploads/mongo-ruby-toolchain/`host_distro`/f11598d091441ffc8d746aacfdc6c26741a3e629/mongo_ruby_driver_toolchain_`host_distro |tr - _`_patch_f11598d091441ffc8d746aacfdc6c26741a3e629_5e46f2793e8e866f36eda2c5_20_02_14_19_18_18.tar.gz
79
- toolchain_url=http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/ruby-toolchain-`host_distro`-$TOOLCHAIN_VERSION.tar.xz
82
+ toolchain_url=http://boxes.10gen.com/build/toolchain-drivers/mongo-ruby-driver/$TOOLCHAIN_VERSION/`host_distro`/$RVM_RUBY.tar.xz
80
83
  curl --retry 3 -fL $toolchain_url |tar Jxf -
81
84
  export PATH=`pwd`/rubies/$RVM_RUBY/bin:$PATH
82
85
  #export PATH=`pwd`/rubies/python/3/bin:$PATH
data/spec/spec_helper.rb CHANGED
@@ -30,6 +30,13 @@ require "yaml"
30
30
  require 'support/spec_config'
31
31
 
32
32
  if SpecConfig.instance.active_support?
33
+ require "active_support/version"
34
+ if ActiveSupport.version >= Gem::Version.new(7)
35
+ # ActiveSupport wants us to require ALL of it all of the time.
36
+ # See: https://github.com/rails/rails/issues/43851,
37
+ # https://github.com/rails/rails/issues/43889, etc.
38
+ require 'active_support'
39
+ end
33
40
  require "active_support/time"
34
41
  require 'bson/active_support'
35
42
  end
@@ -64,7 +64,8 @@ describe 'Driver common bson tests' do
64
64
  let(:valid_errors) do
65
65
  [
66
66
  BSON::Decimal128::InvalidString,
67
- BSON::Decimal128::InvalidRange
67
+ BSON::Decimal128::InvalidRange,
68
+ BSON::Decimal128::UnrepresentablePrecision,
68
69
  ]
69
70
  end
70
71
 
data.tar.gz.sig CHANGED
Binary file