ignoreUndefinedProperties causes error

Environment details

OS: Arch
Node.js version: 14
npm version: yarn v1.22.17
@google-cloud/firestore version: v4.5.0 (using firebase admin v9.8.0)

So I'm using firestore through the firebase-admin sdk and have had some trouble since enabling the ignoreUndefinedProperties field.
I created a file called admin.ts and import this file into user.ts and user.test.ts
Within admin.ts I have this code:
import * as firebaseAdmin from "firebase-admin";
firebaseAdmin.initializeApp();
firebaseAdmin.firestore().settings({ignoreUndefinedProperties: true});
export default firebaseAdmin;

I just recently added ignoreUndefinedProperties since an update function I created may have some undefined values in the object. After doing this I receive this error:
   2 UNKNOWN:

      27 |   //   {projectId: process.env.GCLOUD_PROJECT ?? ""}
      28 |   // );
    > 29 |   await admin.firestore().doc(`users/${USER_ID}`).delete();
         |                                                         ^
      30 |   await admin.firestore().doc(`publicProfile/${USER_ID}`).delete();
      31 | });
      32 |

      at Object.callErrorFromStatus (node_modules/@grpc/grpc-js/src/call.ts:81:24)
      at Object.onReceiveStatus (node_modules/@grpc/grpc-js/src/client.ts:338:36)
      at Object.onReceiveStatus (node_modules/@grpc/grpc-js/src/client-interceptors.ts:426:34)
      at Object.onReceiveStatus (node_modules/@grpc/grpc-js/src/client-interceptors.ts:389:48)
      at node_modules/@grpc/grpc-js/src/call-stream.ts:276:24
      Caused by: Error:
      at WriteBatch.commit (node_modules/@google-cloud/firestore/build/src/write-batch.js:414:23)
      at DocumentReference.delete (node_modules/@google-cloud/firestore/build/src/reference.js:321:14)
      at Object.<anonymous> (test/user.test.ts:29:57)

This is inside the testing file where I delete user documents before running a test.
I initially thought that this was just because the test may be messing up, but after running the emulator a similar error was thrown. This is the output of the log:

Error
Nov 08, 2021 5:43:16 AM com.google.cloud.datastore.emulator.impl.util.WrappedStreamObserver onError
INFO: operation failed: Invalid pattern. Reason: [71:<eof>] Unexpected end of input at start of path segment.
java.lang.IllegalArgumentException: Invalid pattern. Reason: [71:<eof>] Unexpected end of input at start of path segment.
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:147)
	at com.google.firebase.rules.eventflow.client.path.PathPattern.compileInternal(PathPattern.java:78)
	at com.google.firebase.rules.eventflow.client.path.PathPattern.compile(PathPattern.java:50)
	at com.google.firebase.rules.eventflow.client.EventRuleEvaluatorImpl.lambda$new$0(EventRuleEvaluatorImpl.java:58)
	at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:447)
	at com.google.firebase.rules.eventflow.client.EventRuleEvaluatorImpl.<init>(EventRuleEvaluatorImpl.java:52)
	at com.google.firebase.rules.eventflow.client.EventRuleEvaluatorImpl.<init>(EventRuleEvaluatorImpl.java:39)
	at com.google.cloud.datastore.emulator.impl.events.EventManager.reportEvents(EventManager.java:84)
	at com.google.cloud.datastore.emulator.impl.CloudFirestoreV1.commitHelper(CloudFirestoreV1.java:891)
	at com.google.cloud.datastore.emulator.impl.CloudFirestoreV1.internalCommit(CloudFirestoreV1.java:780)
	at com.google.cloud.datastore.emulator.impl.CloudFirestoreV1.commit(CloudFirestoreV1.java:416)
	at com.google.cloud.datastore.emulator.impl.CloudFirestoreV1Router.commit(CloudFirestoreV1Router.java:137)
	at com.google.cloud.datastore.emulator.firestore.v1.FirestoreV1GrpcAdapter$1.lambda$commit$8(FirestoreV1GrpcAdapter.java:156)
	at com.google.cloud.datastore.emulator.firestore.v1.FirestoreV1GrpcAdapter.unary(FirestoreV1GrpcAdapter.java:67)
	at com.google.cloud.datastore.emulator.firestore.v1.FirestoreV1GrpcAdapter.access$000(FirestoreV1GrpcAdapter.java:39)
	at com.google.cloud.datastore.emulator.firestore.v1.FirestoreV1GrpcAdapter$1.commit(FirestoreV1GrpcAdapter.java:156)
	at com.google.firestore.v1.FirestoreGrpc$MethodHandlers.invoke(FirestoreGrpc.java:1224)
	at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182)
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
	at io.grpc.Contexts$ContextualizedServerCallListener.onHalfClose(Contexts.java:86)
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
	at io.grpc.Contexts$ContextualizedServerCallListener.onHalfClose(Contexts.java:86)
	at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:331)
	at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:866)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

I looked into similar errors and found this, but don't see the merge property on the settings object.
When I remove ignoreUndefinedProperties from the settings everything works perfectly, so I'm assuming it has something to do with it. If I can't find a solution I'll likely just use this to clean objects before trying to set or update documents.
I've read countless SO posts and haven't found anything similar to this, so help would be really appreciated!
Steps to reproduce

Use ignoreUndefinedProperties

Making sure to follow these steps will guarantee the quickest resolution possible.
Thanks!

@joshpetit Thanks for reporting this. It sounds like your request may be malformed. Are you able to turn on debug logging, which will let us know what the request looks like? You should be able to do so by invoking admin.firestore.setLogFunction(console.log).

@schmidt-sebastian I'm sorry, I wont be able to touch the code for about 10 days right now, if it's alright with you could you keep the issue open until then?

@joshpetit Yes, that should be fine.

I'm back and thank you for your patience! I turned on debug logging and this is the output I get:
 console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.554Z GM9oq [WriteBatch.commit]: Sending 1 writes

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

    console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.559Z GM9oq [ClientPool.acquire]: Creating a new client

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

    console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.684Z ##### [Firestore]: Initialized Firestore GAPIC Client

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

    console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.684Z GM9oq [Firestore.request]: Sending request: {"database":"projects/milestone-five-dev/databases/(default)","writes":[{"delete":"projects/milestone-five-dev/databases/(default)/documents/users/user_id"}]}

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

    console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.738Z GM9oq [Firestore.request]: Received error: Error: 2 UNKNOWN:
          at Object.callErrorFromStatus (/home/joshu/projects/petit.dev/milestone5/firebase/functions/node_modules/@grpc/grpc-js/src/call.ts:81:24)
          at Object.onReceiveStatus (/home/joshu/projects/petit.dev/milestone5/firebase/functions/node_modules/@grpc/grpc-js/src/client.ts:338:36)
          at Object.onReceiveStatus (/home/joshu/projects/petit.dev/milestone5/firebase/functions/node_modules/@grpc/grpc-js/src/client-interceptors.ts:426:34)
          at Object.onReceiveStatus (/home/joshu/projects/petit.dev/milestone5/firebase/functions/node_modules/@grpc/grpc-js/src/client-interceptors.ts:389:48)
          at /home/joshu/projects/petit.dev/milestone5/firebase/functions/node_modules/@grpc/grpc-js/src/call-stream.ts:276:24
          at processTicksAndRejections (internal/process/task_queues.js:75:11) {
        code: 2,
        details: '',
        metadata: Metadata {
          internalRepr: Map(1) { 'content-type' => [Array] },
          options: {}
        },
        note: 'Exception occurred in retry method that was not classified as transient'
      }

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

    console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.743Z 21czJ [WriteBatch.commit]: Sending 1 writes

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

    console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.743Z 21czJ [ClientPool.acquire]: Re-using existing client with 100 remaining operations

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

    console.log
      Firestore (4.13.1) 2021-11-29T13:20:03.743Z 21czJ [Firestore.request]: Sending request: {"database":"projects/milestone-five-dev/databases/(default)","writes":[{"delete":"projects/milestone-five-dev/databases/(default)/documents/users/user_id"}]}

      at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

This is very strange. The bit from the log that performs the request looks valid:
Sending request: {"database":"projects/milestone-five-dev/databases/(default)","writes":[{"delete":"projects/milestone-five-dev/databases/(default)/documents/users/user_id"}]}

Would you be able to provide the same logs without ignoreUndefinedProperties? I am a little perplexed.

It's actually very strange, if I rerun the tests, one of them will fail but if I rerun the tests a lot of times eventually all of them will pass 😅. My tear down function in the tests does everything correctly afaik, but running tests and the emulators I still encounter problems. Here's the whole log output:
Entire Log

    console.warn
      {"severity":"WARNING","message":"Warning, estimating Firebase Config based on GCLOUD_PROJECT. Initializing firebase-admin may fail"}
  at write (node_modules/firebase-functions/lib/logger.js:39:78)
  at Object.warn (node_modules/firebase-functions/lib/logger.js:90:5)
  at Object.setup (node_modules/firebase-functions/lib/setup.js:46:22)
  at Object.<anonymous> (node_modules/firebase-functions/lib/index.js:67:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.178Z ##### [Firestore]: Initialized Firestore

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.323Z BFBh0 [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.327Z BFBh0 [ClientPool.acquire]: Creating a new client

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.445Z ##### [Firestore]: Initialized Firestore GAPIC Client

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.446Z BFBh0 [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/users/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.475Z BFBh0 [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":468292000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.476Z S7CrR [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.476Z S7CrR [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.476Z S7CrR [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.479Z S7CrR [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":478055000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.495Z yQQDW [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.497Z yQQDW [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.497Z yQQDW [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id","fields":{"firstName":{"stringValue":"James"},"email":{"stringValue":"email@email.com"},"phoneNumber":{"stringValue":"222-222-2222"},"birthDate":{"stringValue":"May 10"},"lastName":{"stringValue":"Peterson"},"profileURL":{"stringValue":"image_url"},"lifeEvents":{"arrayValue":{}}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.502Z yQQDW [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270516","nanos":501822000}}],"commitTime":{"seconds":"1638270516","nanos":501822000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.503Z 84hrE [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.504Z 84hrE [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.504Z 84hrE [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id","fields":{"firstName":{"stringValue":"James"},"lastName":{"stringValue":"Peterson"},"profileURL":{"stringValue":"image_url"},"uid":{"stringValue":"user_id"}}},"updateMask":{"fieldPaths":["firstName","lastName","profileURL","uid"]}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.507Z 84hrE [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270516","nanos":506791000}}],"commitTime":{"seconds":"1638270516","nanos":506791000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.508Z M4tTi [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.508Z M4tTi [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.509Z M4tTi [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id/private/friends","fields":{"friends":{"arrayValue":{}},"deniedFriends":{"arrayValue":{}},"friendRequests":{"arrayValue":{}},"friendIds":{"arrayValue":{}}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.514Z M4tTi [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270425","nanos":568732000}}],"commitTime":{"seconds":"1638270516","nanos":513634000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.515Z LIkHf [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.515Z LIkHf [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.515Z LIkHf [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id/private/settings","fields":{"pushNotifications":{"booleanValue":true},"emailNotifications":{"booleanValue":true},"textNotifications":{"booleanValue":true}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.518Z LIkHf [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270425","nanos":573481000}}],"commitTime":{"seconds":"1638270516","nanos":517176000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.520Z ME75t [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.520Z ME75t [Firestore.requestStream]: Sending request: {"database":"projects/not-a-project/databases/(default)","documents":["projects/not-a-project/databases/(default)/documents/users/user_id"]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.528Z ME75t [Firestore.requestStream]: Received response: {"transaction":{"type":"Buffer","data":[]},"readTime":{"seconds":"1638270516","nanos":525467000},"found":{"fields":{"profileURL":{"stringValue":"image_url","valueType":"stringValue"},"lastName":{"stringValue":"Peterson","valueType":"stringValue"},"birthDate":{"stringValue":"May 10","valueType":"stringValue"},"firstName":{"stringValue":"James","valueType":"stringValue"},"phoneNumber":{"stringValue":"222-222-2222","valueType":"stringValue"},"email":{"stringValue":"email@email.com","valueType":"stringValue"},"lifeEvents":{"arrayValue":{"values":[{"stringValue":"yjFH7fp79vQ6OpiUyQHM","valueType":"stringValue"},{"stringValue":"yjFH7fp79vQ6OpiUyQHM","valueType":"stringValue"}]},"valueType":"arrayValue"}},"name":"projects/not-a-project/databases/(default)/documents/users/user_id","createTime":{"seconds":"1638270516","nanos":501822000},"updateTime":{"seconds":"1638270516","nanos":524601000}},"result":"found"}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.528Z ME75t [Firestore._initializeStream]: Releasing stream

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.529Z ME75t [DocumentReader.fetchDocuments]: Received document: projects/not-a-project/databases/(default)/documents/users/user_id

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.530Z ME75t [Firestore._initializeStream]: Received stream end

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.531Z ME75t [DocumentReader.fetchDocuments]: Received 1 results

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.539Z JCC84 [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.539Z JCC84 [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.539Z JCC84 [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/users/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.542Z JCC84 [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":541219000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.542Z nL3JF [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.542Z nL3JF [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.542Z nL3JF [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.545Z nL3JF [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":544283000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Unauthenticated Access attempted

  at Function.run (src/user.ts:12:13)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.547Z 5OlmH [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.547Z 5OlmH [Firestore.requestStream]: Sending request: {"database":"projects/not-a-project/databases/(default)","documents":["projects/not-a-project/databases/(default)/documents/users/user_id"]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.549Z 5OlmH [Firestore.requestStream]: Received response: {"transaction":{"type":"Buffer","data":[]},"readTime":{"seconds":"1638270516","nanos":549178000},"missing":"projects/not-a-project/databases/(default)/documents/users/user_id","result":"missing"}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.550Z 5OlmH [Firestore._initializeStream]: Releasing stream

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.550Z 5OlmH [DocumentReader.fetchDocuments]: Document missing: projects/not-a-project/databases/(default)/documents/users/user_id

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.551Z 5OlmH [Firestore._initializeStream]: Received stream end

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.551Z 5OlmH [DocumentReader.fetchDocuments]: Received 1 results

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.552Z zmqGK [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.552Z zmqGK [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.552Z zmqGK [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/users/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.554Z zmqGK [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":553917000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.555Z NnVdk [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.555Z NnVdk [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.555Z NnVdk [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.557Z NnVdk [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":556909000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.558Z 6Mlm4 [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.559Z 6Mlm4 [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.559Z 6Mlm4 [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id","fields":{"firstName":{"stringValue":"James"},"email":{"stringValue":"email@email.com"},"phoneNumber":{"stringValue":"222-222-2222"},"birthDate":{"stringValue":"May 10"},"lastName":{"stringValue":"Peterson"},"profileURL":{"stringValue":"image_url"},"lifeEvents":{"arrayValue":{}}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.562Z 6Mlm4 [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270516","nanos":561631000}}],"commitTime":{"seconds":"1638270516","nanos":561631000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.563Z pBuZs [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.564Z pBuZs [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.564Z pBuZs [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id","fields":{"firstName":{"stringValue":"James"},"lastName":{"stringValue":"Peterson"},"profileURL":{"stringValue":"image_url"},"uid":{"stringValue":"user_id"}}},"updateMask":{"fieldPaths":["firstName","lastName","profileURL","uid"]}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.567Z pBuZs [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270516","nanos":566484000}}],"commitTime":{"seconds":"1638270516","nanos":566484000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.568Z wTKto [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.568Z wTKto [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.568Z wTKto [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id/private/friends","fields":{"friends":{"arrayValue":{}},"deniedFriends":{"arrayValue":{}},"friendRequests":{"arrayValue":{}},"friendIds":{"arrayValue":{}}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.571Z wTKto [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270425","nanos":568732000}}],"commitTime":{"seconds":"1638270516","nanos":570097000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.571Z 4aGpv [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.571Z 4aGpv [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.572Z 4aGpv [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id/private/settings","fields":{"pushNotifications":{"booleanValue":true},"emailNotifications":{"booleanValue":true},"textNotifications":{"booleanValue":true}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.574Z 4aGpv [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270425","nanos":573481000}}],"commitTime":{"seconds":"1638270516","nanos":573463000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.576Z eL1Uo [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.576Z eL1Uo [Firestore.requestStream]: Sending request: {"database":"projects/not-a-project/databases/(default)","documents":["projects/not-a-project/databases/(default)/documents/publicProfile/user_id"]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.579Z eL1Uo [Firestore.requestStream]: Received response: {"transaction":{"type":"Buffer","data":[]},"readTime":{"seconds":"1638270516","nanos":578877000},"found":{"fields":{"profileURL":{"stringValue":"image_url","valueType":"stringValue"},"firstName":{"stringValue":"James","valueType":"stringValue"},"lastName":{"stringValue":"Peterson","valueType":"stringValue"},"uid":{"stringValue":"user_id","valueType":"stringValue"}},"name":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id","createTime":{"seconds":"1638270516","nanos":566484000},"updateTime":{"seconds":"1638270516","nanos":566484000}},"result":"found"}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.579Z eL1Uo [Firestore._initializeStream]: Releasing stream

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.580Z eL1Uo [DocumentReader.fetchDocuments]: Received document: projects/not-a-project/databases/(default)/documents/publicProfile/user_id

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.581Z eL1Uo [Firestore._initializeStream]: Received stream end

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.581Z eL1Uo [DocumentReader.fetchDocuments]: Received 1 results

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.582Z HPXIz [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.582Z HPXIz [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.582Z HPXIz [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/users/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.585Z HPXIz [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":584391000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.585Z SGuWW [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.585Z SGuWW [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.585Z SGuWW [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.587Z SGuWW [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":586982000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.588Z tPVFj [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.588Z tPVFj [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.588Z tPVFj [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id","fields":{"firstName":{"stringValue":"James"},"email":{"stringValue":"email@email.com"},"phoneNumber":{"stringValue":"222-222-2222"},"lastName":{"stringValue":"Peterson"},"profileURL":{"stringValue":"image_url"},"lifeEvents":{"arrayValue":{}}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.591Z tPVFj [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270516","nanos":590604000}}],"commitTime":{"seconds":"1638270516","nanos":590604000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.592Z WZRYd [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.592Z WZRYd [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.592Z WZRYd [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id","fields":{"firstName":{"stringValue":"James"},"lastName":{"stringValue":"Peterson"},"profileURL":{"stringValue":"image_url"},"uid":{"stringValue":"user_id"}}},"updateMask":{"fieldPaths":["firstName","lastName","profileURL","uid"]}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.595Z WZRYd [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270516","nanos":594828000}}],"commitTime":{"seconds":"1638270516","nanos":594828000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.596Z i6DpM [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.596Z i6DpM [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.596Z i6DpM [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id/private/friends","fields":{"friends":{"arrayValue":{}},"deniedFriends":{"arrayValue":{}},"friendRequests":{"arrayValue":{}},"friendIds":{"arrayValue":{}}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.599Z i6DpM [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270425","nanos":568732000}}],"commitTime":{"seconds":"1638270516","nanos":598279000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.599Z JuZUq [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.599Z JuZUq [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.600Z JuZUq [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/users/user_id/private/settings","fields":{"pushNotifications":{"booleanValue":true},"emailNotifications":{"booleanValue":true},"textNotifications":{"booleanValue":true}}}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.602Z JuZUq [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270425","nanos":573481000}}],"commitTime":{"seconds":"1638270516","nanos":601367000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.604Z kzgpJ [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.604Z kzgpJ [Firestore.requestStream]: Sending request: {"database":"projects/not-a-project/databases/(default)","documents":["projects/not-a-project/databases/(default)/documents/users/user_id"]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.606Z kzgpJ [Firestore.requestStream]: Received response: {"transaction":{"type":"Buffer","data":[]},"readTime":{"seconds":"1638270516","nanos":605625000},"missing":"projects/not-a-project/databases/(default)/documents/users/user_id","result":"missing"}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.606Z kzgpJ [Firestore._initializeStream]: Releasing stream

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.606Z kzgpJ [DocumentReader.fetchDocuments]: Document missing: projects/not-a-project/databases/(default)/documents/users/user_id

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.607Z kzgpJ [Firestore._initializeStream]: Received stream end

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.607Z kzgpJ [DocumentReader.fetchDocuments]: Received 1 results

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.608Z Oa7Y5 [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.608Z Oa7Y5 [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.608Z Oa7Y5 [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/users/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.611Z Oa7Y5 [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":610347000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.611Z TpPyX [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.612Z TpPyX [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.612Z TpPyX [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"delete":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id"}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.614Z TpPyX [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":null}],"commitTime":{"seconds":"1638270516","nanos":613694000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.616Z ##### [Firestore]: Initialized Firestore

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  we gon kill it

  at Function.run (src/user.ts:64:19)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.619Z mEzmy [WriteBatch.commit]: Sending 1 writes

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.619Z mEzmy [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.620Z mEzmy [Firestore.request]: Sending request: {"database":"projects/not-a-project/databases/(default)","writes":[{"update":{"name":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id","fields":{"firstName":{"stringValue":"Jang"},"lastName":{"stringValue":"Peterson"},"profileURL":{"stringValue":"profile"},"uid":{"stringValue":"user_id"}}},"updateMask":{"fieldPaths":["firstName","lastName","profileURL","uid"]}}]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.623Z mEzmy [Firestore.request]: Received response: {"writeResults":[{"transformResults":[],"updateTime":{"seconds":"1638270516","nanos":622377000}}],"commitTime":{"seconds":"1638270516","nanos":622377000}}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.625Z Q0Rx8 [ClientPool.acquire]: Re-using existing client with 100 remaining operations

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.625Z Q0Rx8 [Firestore.requestStream]: Sending request: {"database":"projects/not-a-project/databases/(default)","documents":["projects/not-a-project/databases/(default)/documents/publicProfile/user_id"]}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.628Z Q0Rx8 [Firestore.requestStream]: Received response: {"transaction":{"type":"Buffer","data":[]},"readTime":{"seconds":"1638270516","nanos":627209000},"found":{"fields":{"profileURL":{"stringValue":"profile","valueType":"stringValue"},"firstName":{"stringValue":"Jang","valueType":"stringValue"},"lastName":{"stringValue":"Peterson","valueType":"stringValue"},"uid":{"stringValue":"user_id","valueType":"stringValue"}},"name":"projects/not-a-project/databases/(default)/documents/publicProfile/user_id","createTime":{"seconds":"1638270516","nanos":622377000},"updateTime":{"seconds":"1638270516","nanos":622377000}},"result":"found"}

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.628Z Q0Rx8 [Firestore._initializeStream]: Releasing stream

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.628Z Q0Rx8 [DocumentReader.fetchDocuments]: Received document: projects/not-a-project/databases/(default)/documents/publicProfile/user_id

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.629Z Q0Rx8 [Firestore._initializeStream]: Received stream end

  at Object.logger (node_modules/@google-cloud/firestore/build/src/logger.js:35:9)

console.log
  Firestore (4.13.1) 2021-11-30T11:08:36.629Z Q0Rx8 [DocumentReader.fetchDocuments]: Received 1 results

Thanks for your time!

Hm, there is nothing unusual about the logs. I wish  could provide more help here, but I might need a reproduction. Are you able to share more of your code? You can send it me privately at mrschmidt(at)google.com.

I worked with @joshpetit to reproduce this and unfortunately was not able to. We can re-visit this issue once we have a reproducible case.


Pass dataPointIndex to options.colors callback function

Currently it's not possible to assign unique colors to each data point in a bar chart (can only assign unique colors to each series as a whole).  However as an example, suppose you're charting the performance of various CPUs across different workloads of the same benchmark.  For each workload, you wish to display the top 5 performing CPUs.  Each CPU is assigned a unique color.   This is not currently possible without having dataPointIndex passed to the callback function.
var options = {
colors: [function({value, seriesIndex, w}) {
// If dataPointIndex was passed as a parameter, then unique colors per data point could be assigned.
}
}

Such a shame this is not implemented. This sounds like an easy thing to handle more customizability.


FR: Auto-archiver

Reviews PRs to insure that they include

A inactive badge
A link to a similar project to forward users.

And then merges them and transfers ownership to github.com/googlearchive
This would require dpebot have admin on GoogleCloudPlatform, as well as googlearchive, so this may be more of a FR for Google Admin, or we'd have to increase the permissions of dpebot

Better yet, we can just get DPE bot to add the inactivity badge itself.


Correct the type names used in LoggingMiddleware example README

Motivation
Each of our examples includes a covering README. The README for the logging
middleware example had some comments about the type names that were inaccurate.
Modifications
Fix the commentary in the logging middleware example README.
Result
Fixed the commentary in the logging middleware example README.
Test Plan
None.

@simonjbeaumont Approved but since it needs a typo fix, disabled auto-mege.


A JS-style Text Format

Based on this proposal:
https://github.com/WebAssembly/design/pull/704

Sound's like an idea for completely separate project.


Webhooks.md for golang is not working as expected.

Descroption: Following https://github.com/operator-framework/operator-sdk/blob/master/website/content/en/docs/building-operators/golang/webhooks.md, I am not able to create webhooks. Might be missing cert-manager installation setup, and instructions to comment out Webhook related code in the operator implementation.

As per instructions from the document, below is the error faced.
I0807 20:12:16.873307       1 leaderelection.go:242] attempting to acquire leader lease  memcached-operator-system/f1c5ece8.example.com...
2020-08-07T20:12:16.876Z	INFO	controller-runtime.manager	starting metrics server	{"path": "/metrics"}
2020-08-07T20:12:16.876Z	INFO	controller-runtime.webhook.webhooks	starting webhook server
2020-08-07T20:12:16.877Z	ERROR	setup	problem running manager	{"error": "open /tmp/k8s-webhook-server/serving-certs/tls.crt: no such file or directory"}
github.com/go-logr/zapr.(*zapLogger).Error
	/go/pkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128
main.main
	/workspace/main.go:99
runtime.main
	/usr/local/go/src/runtime/proc.go:203

I'm curious if we even need to keep this doc. Can we just link to an upstream kubebuilder doc about webhook development and usage?

I'm curious if we even need to keep this doc. Can we just link to an upstream kubebuilder doc about webhook development and usage?

The steps are the same as far as I understand.

Hi @bharathi-tenneti,
The error "error": "open /tmp/k8s-webhook-server/serving-certs/tls.crt: no such file or directory occurs when the required steps to set up the cert-manager were performed. See that we need to change things in the templates. As you did in the samples: https://github.com/operator-framework/operator-sdk-samples/blob/master/go/kubebuilder/memcached-operator/config/default/kustomization.yaml#L45-L70
The webhooks works in k8s clusters because it is tested by Kubebuilder CI as well. See: here and here.

True, as per @joelanford 's suggestion, Since the actual steps are included in KB book, we can  directly point to upstream docs.

IMO we should remove the webhooks info from the tutorial. This info does NOT shows accurate and relevant to the example and brings a lot of confusion. We have no step in the tutorial that users should create and/or use a webhook. Also, IHMO if we will add a doc it should be part of an advanced/reference where we would have a continuation of the tutorial to explain how to make the Memcached-operator be implemented with webhooks.

Closing this issue for now, until we are clear about what needs to be done.


Counter-Strike 2: add workshop settings and switch to anonymous download

Looks good
Requesting to add feature: sv_workshop_allow_other_maps true/false
When hosting a workshop collection, users can play other workshop map on this server when it is empty and then mapcycle into this server collection.``

Looks good
Requesting to add feature:

sv_workshop_allow_other_maps true/false

When hosting a workshop collection, users can play other workshop map on this server when it is empty and then mapcycle into this server collection.

You sure?
help: no cvar or command named sv_workshop_allow_other_map

Ah, oops, typo lol. Now added

Looks good
Requesting to add feature:

sv_workshop_allow_other_maps true/false

When hosting a workshop collection, users can play other workshop map on this server when it is empty and then mapcycle into this server collection.

You sure?
help: no cvar or command named sv_workshop_allow_other_map

sv_workshop_allow_other_maps (forgot the s)

Yeah, already noted I had a typo


Free Food Notification Message Format

This is done when: Indentation for the notification message is fixed.

The message is now formatted correctly.


Change the default value for the authority host option to be read from the environment variable first.

Fixes https://github.com/Azure/azure-sdk-for-cpp/issues/4875
Ultimately, this isn't a breaking change, but rather a bug fix to match user intention:

If the user set the option before to a particular value, it continues to get honored (since that is the highest precedence)
If the user doesn't set the option, and was running in an environment where the environment variable wasn't set, we previously fell back to the default authority (which is the public cloud), and we continue to do so, since the env var value will be empty.
If the user doesn't set the option, and was running in an environment where the environment variable was set, we now correctly use that value over the fallback default authority. That's the bug fix here.

If, for some reason, the user really wanted the previous behavior, and ignore the environment variable set on the environment, they can explicitly set the AuthorityHost option to the desired value. This way the intent is explicit and clear, rather than implicit/accidental.

Added Discuss in Office Hours


Cannot resolve servers. Missing data

@h2non, I'm still struggling to get this to work. I've added a service named my-service.
curl -X PUT -d '{"Datacenter": "vagrant-cloud", "Node": "my-node.example.com", "Address": "<IP_ADDRESS>", "Servi {"Service": "my-service", "Address": "<IP_ADDRESS>", "Port": 49000}}' http://<IP_ADDRESS>:8500/v1/catalog/register

When requesting it via CURL from Consul, I get:
[
  {
    "Node": "my-node.example.com",
    "Address": "<IP_ADDRESS>",
    "ServiceID": "my-service",
    "ServiceName": "my-service",
    "ServiceTags": [

    ],
    "ServiceAddress": "<IP_ADDRESS>",
    "ServicePort": 49000,
    "ServiceEnableTagOverride": false,
    "CreateIndex": 216,
    "ModifyIndex": 216
  }
]

However, when I run the following:
var resilient = require('resilient');
var consul = require('resilient-consul');
var client = resilient();

client.use(consul({
  service: 'my-service',
  discoveryService: 'consul',
  datacenter: 'vagrant-cloud',
  enableSelfRefresh: true,
  servers: [
    'http://<IP_ADDRESS>:8500'
  ],
  onlyHealthy: false
}));

client.get('/', function (err, res) {
  console.log('Error:', err);
  console.log('Response:', res);
});

I get the error Cannot resolve servers. Missing data. I've debugged it for a while, and I see that when calling hasValidServiceServers, the function resilient.servers() is returning { servers: [], updated:<PHONE_NUMBER>643 }. However, I can see handleResolution being called for URL http://<IP_ADDRESS>:8500/v1/catalog/service/my-service?_time=1453765689463&dc=vagrant-cloud returning the service I added.
I've also tried adding a service to demo.consul.io, but I'm not allowed. Running the example (against demo.consul.io) from the README file throws Discovery server response is invalid or empty.
Any ideas?

For some reason the plugin is passing a bad servers list to resilient. Try adding a custom Consul response mapper function via mapServers option to ensure your passing the proper array of valid URLs.

A custom mapServers function did the trick. The argument list passed is an array of service objects such as:
[{
  "Node": "my-node.example.com",
  "Address": "<IP_ADDRESS>",
  "ServiceID": "my-service",
  "ServiceName": "my-service",
  "ServiceTags": [],
  "ServiceAddress": "<IP_ADDRESS>",
  "ServicePort": 49000,
  "ServiceEnableTagOverride": false,
  "CreateIndex": 216,
  "ModifyIndex": 216
}]

Resilient seems to expect an array of URL strings, so it worked when adding the following custom mapping function:
mapServers: function (list) {
  return list.map(function (svc) {
    return 'http://' + svc.ServiceAddress + ':' + svc.ServicePort;
  });
}

However, the default function mapServersFromCatalogEndpoint seems to be attempt doing this, but it will return ServiceAddress if found instead of constructing the URI. Could this be a bug?

Consul addresses can be read in multiple was. In that case is not supperted properly, so there is required to map it properly as string. Feel free to do a PR to fix that.

Thanks for the PR. The feature was shipped in 0.1.5. Feel free to update your dependency tree via npm or bower.

Thanks @h2non for being so responsive!


Library and Book LMS - book cover rollover status

Change rollover status of a book cover to underlining book title (You're not getting the viewer form these pages. The only place should be using this hovering status is the thumbnails in image galley)

@kevinglover I don't see the hover status on the main library page.
Also, hover on images in the book detail gallery page seem to be including some padding to the right of the actual image.

@rlskoeser I thought the only place should be using this hovering status is the thumbnails in image galley?

@kevinglover Oh! Yes, I misread Xinyi's comment above.  Sorry about that, I see now.

incorrect icon
color overlay is exceeding the actual image size
any clue why the animation is so slow?

@xinyil what would be the correct icon? That's the svg icon specified in the project

The overlay is limited to the box model and the size related to the image. We can't set both the width and height to be the same as the image because all the images are not guaranteed to be the same dimensions. Currently, we are setting the height and allowing the width to be automatically calculated based on the image source. We could also set the width and the overlay would cover the image completely, but that would risk stretching and distorting the image.

This is tangentially related to another issues raised with the alignment of the image text.
Since the images are in columns, the width of the containers are fixed, so we are limited to these scenarios: the images are either going to have a set height or will extend 100% width.
This example shows two scenarios: https://codepen.io/kevinglover/pen/KvLoQM

the icon should be white
can we treat the images the same way as the book covers? width set to 2 columns, auto height, and can be different

@xinyil We can do make the images wider and have them set to auto height; that will have the issue where the rollover color might be longer/shorter than the image based on the dimensions of the thumbnail.


I247 Default Imagery and Terrain file filters ignore tiff

Note: this PR is just copying Asmita's PR #495

We also need documentation changes along with this - anywhere in the documentation where it lists supported file types it should also list .tiff/.TIFF.


Bros pls Can u Fix This

The files is returning 2 array. Pls FIX.

Pls Its works Fine when u drop the images
but BUG when u select them 1 after the Other
Can u FIX Urgently.

Hello @fidelity2851,
I just checked it works fine, I think there is a problem on your side, can you share the code of the function that handles the event?

<UploadImages @change="ImagesSelected" />
ImagesSelected(files) {
this.Advert.images = files
console.log(files)
},
Am using Vue 3

It looks fine, maybe something else caused this problem, please DM me on Twitter @yudax42 so I can help you debug your code.
Have a great day!

Pls inbox is closed on Twitter

Hi, I know this is closed, but I found the issue, for future reference or if @fidelity2851 still needs help.
I think it's because he is using Vue3 (like I am). I saw this only supports Vue2, but most of the methods and stuff seemed fine for Vue3, so I took a risk and stumbled upon this same error. For some reason whenever you clicked on the Upload Images section, or the Append "button", it FIRST assigned the files to the array, and then completely replaced it afterwards with ALL of the $event argument keys and values.
I fixed this by changing the $emit method name inside the component from this.$emit("change", this.files) to this.$emit("changed", this.files);
It seems there was a "conflict of interest" in a way, elements fighting over a method name, seeing as you are calling on the onchange event on the input:file inside the component and then naming the emitted method the same thing. @yudax42 I'd suggest giving the emitted method a new name. You could even use the one I "changed" it to ;P ... Until you do, anybody else that wants to use this amazing component will have to physically rename that emitted method themselves inside the (/node_modules/vue-upload-drop-images/dist) folder.
Loved this component, that's why I took the time to see what could make this more friendly to Vue3.
Keep up the good work @yudax42!

Hello @CyferZ,
First I want to thank you for taking time to look for a solution to that problem and for your kind words!
I tried to debug the code before and I didn't notice this issue, Your suggestion seems very logical and right. i will  update the code to fix it.
I really appreciate your help !

Not a problem! That's what us developers are here for. I'm very glad I was able to help, and hope I'll be able to keep supporting your repo through future Vue updates. ^^

Thanks guys everything works fine now
💚💚💚

facing the same problem


Add FakeSuit for testing

Close #68

@rultor merge

@rultor merge

@smallcreep OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@smallcreep Done! FYI, the full log is here (took me 10min)


Configure version of composer to use (1 vs 2)

Some packages are not compatible with composer 1 or 2.
I can do a composer self-update --2 inside the container after it starts but this could lead to another developer using a different version of composer.
I would be awesome if we could force a composer version in the docker-compose file

I found latest tag has composer 2, so I can switch tags.
https://github.com/wodby/php/issues/121

I found latest tag has composer 2, so I can switch tags.
https://github.com/wodby/php/issues/121

So I have been doing this, but it wouldn't be too hard to set this up to be configured.
As a simple answer, officially documenting what those tags were in the Readme would be helpful for new users of the project.


fix: private policies cannot use wildcard principal

what

fix(s3_website_origin/principals): adjust for private buckets
fix(dns/zone_id): should be null if not specified

why

Attempting to set the principal to ["*"] (a wildcard) is blocked by the
latest public access policy validation for S3
DNS zone name is not used for Route53 Zone lookup unless the zone_id is
null

/terratest

/terratest


Issuer does not become ready

Using the main branch of TCS and the Trusted Attestation Controller along with KMRA 2.0, the TCS Issuer,
Kubernetes cluster is v1.24.3, the following TCS Issuer does not become ready.
apiVersion: tcs.intel.com/v1alpha1
kind: TCSIssuer
metadata:
    name: my-ca
    namespace: sandbox
spec:
    secretName: my-ca-cert
    selfSign: false

Does not become Ready, even though it appears that all operations (quote verification, wrapped key transfer, wrapped key secret creation) have occurred.
~/git/trusted-attestation-controller/sandbox$ kubectl get quoteattestation,tcsissuer,secret -n sandbox
NAME                                   AGE
quoteattestation.tcs.intel.com/my-ca   24m

NAME                            AGE   READY   REASON      MESSAGE
tcsissuer.tcs.intel.com/my-ca   25m   False   Reconcile   Initiated key provisioning using QuoteAttestation

NAME           TYPE     DATA   AGE
secret/my-ca   Opaque   2      24m

Logs attached.
tac-plugin.log
tcs.log
kmra.log
tac.log

@snackewm Thanks for reporting the issue. Guess I figured out the root cause for this issue. In recent changes somehow TCS stop reconciling after creating the quote attestation object. #42 supposed to fix this. Can you give it a try if it works for you.


CustomerSource and PartnerSource are retired.

This docs page references CustomerSource and PartnerSource a bunch and those site are retired and https://mbs.microsoft.com/ is no longer responding to requests.  The page should be updated with the new customer and partner destinations.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8ee6629a-f1a4-b352-0b26-657a503d80a7
Version Independent ID: dbe54d30-b73b-0446-7d80-922050825641
Content: Configure Lifecycle Services (LCS) security - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/lifecycle-services/configure-lcs-security.md
Service: dynamics-365-cross-app
Product: ****
Technology: ****
GitHub Login: @AngelMarshall
Microsoft Alias: tsmarsha

@scott-tucker, thanks for bringing this to our attention.  We'll work to correct this.

The links to CustomerSource and PartnerSource have been removed.


Create Jenkins pipeline jobs for all DB types

Description:
Currently, there are build jobs only for MySQL database. We need to add MariaDB, PostgreSQL, SQLServer and Oracle database build jobs to the pipeline stages.

+1

Cool.. We can may be add parallel step inside the for-loop.. but need to
verify that.

Parallel step is tested, and works fine (See link But we can not add parallel steps  ATM since AWS VPC limits may cause problems.

Parallel step is tested, and works fine (See link
https://testgrid-live-dev.private.wso2.com/blue/organizations/jenkins/wso2is-5.4.1-LTS/detail/wso2is-5.4.1-LTS/154/pipeline
But we can not add parallel steps ATM since AWS VPC limits may cause
problems.

I see.. Can we control the parallelism? For example, can we request jenkins
pipeline to only have three/four concurrent builds? Basically, we want to
run these tasks in a size-controlled thread-pool.
Do you have a sample Jenkinsfile where u run parallel tasks?

Yes we can control the amount of concurrent builds.
Yes.
I just used something like below for testing (but we need to re-structure it to add to testgrid flow :) )
steps {
    script {
    parallel (
        "stream1" : {
                        try {
                            echo 'Running Test Plan for infra-combination 2'
                            sh "java -version"

                            unstash name: "${JOB_CONFIG_YAML}"

                            sh """
                            cd ${TESTGRID_HOME}/testgrid-dist/${TESTGRID_NAME}
                            ./testgrid run-testplan \
                                --product ${PRODUCT} \
                                --file "${TESTGRID_HOME}/jobs/${PRODUCT}/test-plans/test-plan-01.yaml"
                            """
                            } catch (Exception err) {
                                echo "Error : ${err}"
                                currentBuild.result = 'FAILURE'
                            }
        },
        "stream2" : {

                        try {
                            echo 'Running Test Plan for infra-combination 2'
                            sh "java -version"

                            unstash name: "${JOB_CONFIG_YAML}"

                            sh """
                            cd ${TESTGRID_HOME}/testgrid-dist/${TESTGRID_NAME}
                            ./testgrid run-testplan \
                                --product ${PRODUCT} \
                                --file "${TESTGRID_HOME}/jobs/${PRODUCT}/test-plans/test-plan-02.yaml"
                            """
                            } catch (Exception err) {
                                echo "Error : ${err}"
                                currentBuild.result = 'FAILURE'
                            }

        }
        )
    }
    echo "RESULT: ${currentBuild.result}"
}

We can even control and name nodes for each concurrent build as well. Haven't tested though! :) So each build can run parallel in different nodes (machines).

@kasunbg check this out! Its dynamic steps in parallel and working! :D

whoa.. that's really nice!!

Final flow including TestGrid test-plan execution code in each parallel step is --> here
Code ATM
stage('TestGrid Test Execution') {
            steps {
                script {
                    def tests = [:]
                    for (f in findFiles(glob: '**/test-plans/*.yaml')) {
                        tests["${f}"] = {
                            node {
                                stage("Combination of ${f}") {
                                        script {
                                                try {
                                                    echo 'Running Test Plan for infra-combination ${f}'
                                                    sh "java -version"

                                                    unstash name: "${JOB_CONFIG_YAML}"

                                                    sh """
                                                    cd ${TESTGRID_HOME}/testgrid-dist/${TESTGRID_NAME}
                                                    ./testgrid run-testplan \
                                                        --product ${PRODUCT} \
                                                        --file "${TESTGRID_HOME}/jobs/${PRODUCT}/${f}"
                                                    """
                                                } catch (Exception err) {
                                                    echo "Error : ${err}"
                                                    currentBuild.result = 'FAILURE'
                                                }
                                            }
                                        echo "RESULT: ${currentBuild.result}"
                                }
                            }
                        }
                    }
                    parallel tests
                }
            }
        }

Cool.. We may need to bring the 'post' processing tasks into the above stage now?
And, what's your suggestion to address the VPC limit? Is there a way to limit the parallelism via a thread pool or similar?

I think we need a resource tracking and allocation mechanism inside the TestGrid. There can be other resources which also have certain limitations. If we do that, we can increase the level of parallelism.

Yea.. shall we raise a github ticket and a mail thread on that? At the same time, we need a solution to limit the parallelism.

+1 for having a resource tracking in TestGrid side.. and once we have that, TestGrid is aware of live stats of the available, reserved resources like VPC and therefore I think we can handle parallelism from TestGrid side in efficient way, instead of letting jenkins do.


Implement the draft taxon workflow

This implements a draft workflow system for taxons. We currently publish taxons immediately when created from the user interface.
Flow

https://trello.com/c/8YH5l9kF

This all looks good to me 👍


startupActions don't trigger on launching from context menu

Windows Terminal version (or Windows build number)
10.0.19042.0
Other Software
No response
Steps to reproduce
I've added the following line to my settings.json:
"startupActions": "split-pane -V; move-focus left; split-pane -H; move-focus right; split-pane -H;move-focus left;move-focus up"
This is to open 4 panes. I would like this to always happen. However this does not happen when I open from the context menu in a folder, I just get one in that case.
Expected Behavior
To get 4 panes when I launch from the context menu.
Actual Behavior
I get 1 pane when I launch from the context menu.

Hmm. Good point. This is sorta like "I want the terminal to set it's working directory when invoked from the shell context menu, not just the startingDirectory for the profile". Kinda like the wt --cwd C:\foo new-tab I mentioned in #9991.
In the past we've marked this request (see #9749) as /dup #6111 So I've gone and added notes there. Thanks!


Bump to v1.3.0

As the title says

I think you should bump the version on README.md too, otherwise LGTM

/lgtm


Subcommand: Reset

We need more subcommands, this issue handles the subcommands for reset:

[ ] Proposal
[ ] Nodes

The old subcommand was broken by design. Most changes happen on the API. This reset subcommand have been moved into the proposal command, e.g. crowbarctl proposal reset ntp default. Fixed with #46.


IndexEntries support for Filter closure

Similar to how Sort() has support, if a Filter() function was added it could allow for a wide range of additional control on filters. Example would be to filter on two indexes with something like: Site.Indexes.technology.Filter(InIndex(politics)).Pages

Isn't most of this possible to achieve with the where template func?


bug ModuleNotFoundError: No module named 'ts2pythonParser'

dubo@LAPTOP-I2R9VG58 MINGW64 /d/Download/audio-visual/saas/tiktoka/youtube-uploader-ts2py (py)
$ pip install ts2python
WARNING: Ignoring invalid distribution -laywright (d:\programs\anaconda\envs\py3.8\lib\site-packages)
WARNING: Ignoring invalid distribution -laywright (d:\programs\anaconda\envs\py3.8\lib\site-packages)
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: ts2python in d:\programs\anaconda\envs\py3.8\lib\site-packages (0.6.8)
Requirement already satisfied: typing_extensions<5.0,>=4.0 in d:\programs\anaconda\envs\py3.8\lib\site-packages (from ts2python) (4.2.0)
Requirement already satisfied: DHParser<1.5,>=1.4 in d:\programs\anaconda\envs\py3.8\lib\site-packages (from ts2python) (1.4.2)
Requirement already satisfied: regex in d:\programs\anaconda\envs\py3.8\lib\site-packages (from DHParser<1.5,>=1.4->ts2python) (2023.5.5)
WARNING: Ignoring invalid distribution -laywright (d:\programs\anaconda\envs\py3.8\lib\site-packages)
WARNING: Ignoring invalid distribution -laywright (d:\programs\anaconda\envs\py3.8\lib\site-packages)
WARNING: Ignoring invalid distribution -laywright (d:\programs\anaconda\envs\py3.8\lib\site-packages)
WARNING: Ignoring invalid distribution -laywright (d:\programs\anaconda\envs\py3.8\lib\site-packages)
dubo@LAPTOP-I2R9VG58 MINGW64 /d/Download/audio-visual/saas/tiktoka/youtube-uploader-ts2py (py)
$ ts2python src/upload.ts
Traceback (most recent call last):
File "D:/Programs/anaconda/envs/py3.8/Scripts/ts2python", line 3, in
from ts2pythonParser import main
ModuleNotFoundError: No module named 'ts2pythonParser'

Thanks for your report! Unfortunately, I was not able to reproduce the bug. (I tried this with a fresh virtual environment.) So I can only guess: In case you have several version of python installed on your system, say one that has been installed with anaconda and another one with the regular Python installer that ts2python has been installed in the site-packages of one of these versions which, however, is not the version of the python-interpreter that is found on the regular system path... But I am not sure about that.
A possible workaround would be to create and activate a virtual environment and then install ts2python into that virtual environment and run it from there. About venvs, see: https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/


Reduce memory usage of QueryResult

QueryResult uses a list to store items, which results in excessive memory usage and unnecessary CPU load.
Indeed, the MongoIterable API is streaming oriented with the functions forEach and iterator, it does not require the use of a list in the background.
In addition, this prevents the use of reusable objects in a ThreadLocal to limit the creation of these and further improve the memory footprint.

@vinssor this doesn't appear to have any commits by you in.  Looks like a PR wanting to merge the 3.6.x branch into master?
Please check and resubmit.


Fix crash in GodotNavigationServer::map_get_path

fixes same problem as #60413 but on master
the problem was that the line:
gd::NavigationPoly *least_cost_poly = &navigation_polys[least_cost_id];

was moved out from the for loop begin while in the loop we have such a statement:
navigation_polys.push_back(new_navigation_poly);

which may lead to vector's memory reallocation in which case pointers to elements (like e.g. gd::NavigationPoly *least_cost_poly = &navigation_polys[least_cost_id]) are invalidated

Thanks!


Realm filters: Allow #(hash) based URLs in filter patterns.

Fixes #9817.
Use case: When people try to add a filter to a site that uses
a hash based router, which makes the URL like:
http://some-site.domain.com/#/c/$(id)s.

Nice, merged, thanks folks!


ESLINT configuration ('DEV' is not defined)

Got error when open server.js '__DEV__' is not defined (eslint)
I also got a lot of errors about curly braces in if statement  (there are no curly braces)
Is it some special type of javascript? Could somebody give you linter settings for this code?

Solved by adding .eslintrc file with this configs:
{
  "parser": "babel-eslint",
  "extends": [
    "plugin:lodash/recommended",
    "airbnb",
    "prettier",
    "prettier/react"
  ],
  "plugins": [
    "lodash",
    "react",
    "prettier"
  ],
  "settings": {
    "import/resolver": {
      "webpack": {
        "config": "./tools/webpack/config.babel.js"
      }
    }
  },
  "env": {
    "browser": true,
    "node": true,
    "jest": true,
    "es6": true
  },
  "rules": {
    "global-require": "off",
    "no-console": "off",
    "no-underscore-dangle": "off",
    "function-paren-newline": "off",
    "react/jsx-filename-extension": [
      "error",
      {
        "extensions": [
          ".js",
          ".jsx"
        ]
      }
    ],
    "import/no-cycle": "off",
    "import/no-extraneous-dependencies": [
      "error",
      {
        "devDependencies": true
      }
    ],
    "jsx-a11y/anchor-is-valid": [
      "error",
      {
        "specialLink": [
          "to"
        ]
      }
    ],
    "lodash/prefer-lodash-method": "off",
    "lodash/prefer-lodash-typecheck": "off",
    "lodash/import-scope": "off",
    "lodash/prefer-noop": "off",
    "prettier/prettier": [
      "error",
      {
        "singleQuote": true
      }
    ]
  },
  "globals": {
    "__CLIENT__": true,
    "__SERVER__": true,
    "__DEV__": true
  }
}

The part that affects DEV seems to be:
"globals": {     "__CLIENT__": true,     "__SERVER__": true,     "__DEV__": true   }


[ENH] - Position plot updates, including for 1D

Responds to #165
Updates plot functions, in particular adding better support for 1d position data, including:

updating plot_position_by_time to support more annotation inputs (bin lines and event markers)
add new plot plot_position_1d, for plotting 1d position data with overlaid
miscellaneous updates, updating helper / utility functions and updating plot annotations

Hi Tom, Thank you, I will update train analysis accordingly! I just accepted the invitation.


Extraction fail

While trying to fetch from master branch downloaded zip has folder named mimol91-graphql-demo-7be6482 and application try to move mimol91-graphql-demo-7be6482099df857868614996a6e7103ecb17ca1e dir
How to recreate
curl -s -H "Authorization: token SECRET_TOKEN" -L https://api.github.com/repos/mimol91/graphql-demo/zipball/7be6482099df857868614996a6e7103ecb17ca1e > 7be6482099df857868614996a6e7103ecb17ca1e.zip

Fixed.