Sfoglia il codice sorgente

Merge pull request #15449 from overleaf/jpa-server-pro-4-1-5

[server-pro] prepare hotfix release 4.1.5

GitOrigin-RevId: de65501909ed5aba6eadf556d2c41ca3a8cc14e2
Jakob Ackermann 2 anni fa
parent
commit
52133a0e39
2 ha cambiato i file con 49 aggiunte e 0 eliminazioni
  1. 5 0
      server-ce/hotfix/4.1.5/Dockerfile
  2. 44 0
      server-ce/hotfix/4.1.5/pr_15445.patch

+ 5 - 0
server-ce/hotfix/4.1.5/Dockerfile

@@ -0,0 +1,5 @@
+FROM sharelatex/sharelatex:4.1.4
+
+# Patch: Change streaming compression in history-v1
+COPY pr_15445.patch .
+RUN patch -p0 < pr_15445.patch

+ 44 - 0
server-ce/hotfix/4.1.5/pr_15445.patch

@@ -0,0 +1,44 @@
+--- services/history-v1/storage/lib/history_store.js
++++ services/history-v1/storage/lib/history_store.js
+@@ -103,11 +103,11 @@ HistoryStore.prototype.storeRaw = function historyStoreStoreRaw(
+   assert.object(rawHistory, 'bad rawHistory')
+
+   const key = getKey(projectId, chunkId)
+-  const stream = streams.gzipStringToStream(JSON.stringify(rawHistory))
+
+   logger.debug({ projectId, chunkId }, 'storeRaw started')
+   return BPromise.resolve()
+-    .then(() =>
++    .then(() => streams.gzipStringToStream(JSON.stringify(rawHistory)))
++    .then(stream =>
+       persistor.sendStream(BUCKET, key, stream, {
+         contentType: 'application/json',
+         contentEncoding: 'gzip',
+--- services/history-v1/storage/lib/streams.js
++++ services/history-v1/storage/lib/streams.js
+@@ -79,8 +79,15 @@ function gunzipStreamToBuffer(readStream) {
+ exports.gunzipStreamToBuffer = gunzipStreamToBuffer
+
+ function gzipStringToStream(string) {
+-  const gzip = zlib.createGzip()
+-  return new ReadableString(string).pipe(gzip)
++  return new BPromise(function (resolve, reject) {
++    zlib.gzip(Buffer.from(string), function (error, result) {
++      if (error) {
++        reject(error)
++      } else {
++        resolve(new ReadableString(result))
++      }
++    })
++  })
+ }
+
+ /**
+@@ -88,6 +95,6 @@ function gzipStringToStream(string) {
+  *
+  * @function
+  * @param {string} string
+- * @return {stream.Writable}
++ * @return {Promise.<stream.Readable>}
+  */
+ exports.gzipStringToStream = gzipStringToStream