{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":38917208,"defaultBranch":"master","name":"james-project","ownerLogin":"apache","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-07-11T07:00:06.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/47359?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714633692.0","currentOid":""},"activityList":{"items":[{"before":"445d2a0c2470cfd835f212610106e6792ec66aef","after":"bf5d0be43c922a671410f57cc4356e97ced84c5f","ref":"refs/heads/master","pushedAt":"2024-05-31T08:23:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"JAMES-4038 Relax EHLO validation for EMclient (#2262)","shortMessageHtmlLink":"JAMES-4038 Relax EHLO validation for EMclient (#2262)"}},{"before":"e3ea9f76f2fae3cc2fa18ec075b8b34f60b6a014","after":"445d2a0c2470cfd835f212610106e6792ec66aef","ref":"refs/heads/master","pushedAt":"2024-05-31T06:57:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"JAMES-4041 Fix OOM upon IMAP COPY (#2265)\n\nIssue arised from command lines like:\r\n\r\n```\r\na0 COPY 1:4294967295 otherMailbox\r\n```\r\n\r\nSemantically valid but it actually caused the batching algorithm to generate\r\nwith a batch size of 10 429.496.730 ranges. With a memory overhead of ~52 bytes\r\nper range we would occupy a space of ~20GB thus the OOM.\r\n\r\nThe root cause lies on the MUA using an arbitrary large range instead of:\r\n\r\n```\r\na0 COPY 1:* otherMailbox\r\n```\r\n\r\nWe believe the batching semantic also is incorrect. Browsing large amounts of\r\nmetadata actuall is not an issue, but the post traitment might be.\r\n\r\nWe thus:\r\n - First consolidate the range against the actual messages in the store\r\n - Window it using the batch size.\r\n - And finally execute like before the copy/move logic.\r\n\r\nThis avoids generating a large amount of potentially enpty ranges.\r\n\r\nMessageBatcher is furthermore removed as it no longer is used.\r\n\r\nWe can remove MessageRange::split","shortMessageHtmlLink":"JAMES-4041 Fix OOM upon IMAP COPY (#2265)"}},{"before":"dd55cb2aa74ac4592c0e1fb8bf1b8efd39dc7e74","after":"7bd5b0e65f95eb9441f178957bd9940bdbcf2c97","ref":"refs/heads/3.8.x","pushedAt":"2024-05-31T04:30:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-4041 Fix OOM upon IMAP COPY\n\nIssue arised from command lines like:\n\n```\na0 COPY 1:4294967295 otherMailbox\n```\n\nSemantically valid but it actually caused the batching algorithm to generate\nwith a batch size of 10 429.496.730 ranges. With a memory overhead of ~52 bytes\nper range we would occupy a space of ~20GB thus the OOM.\n\nThe root cause lies on the MUA using an arbitrary large range instead of:\n\n```\na0 COPY 1:* otherMailbox\n```\n\nWe believe the batching semantic also is incorrect. Browsing large amounts of\nmetadata actuall is not an issue, but the post traitment might be.\n\nWe thus:\n - First consolidate the range against the actual messages in the store\n - Window it using the batch size.\n - And finally execute like before the copy/move logic.\n\nThis avoids generating a large amount of potentially enpty ranges.\n\nMessageBatcher is furthermore removed as it no longer is used.","shortMessageHtmlLink":"JAMES-4041 Fix OOM upon IMAP COPY"}},{"before":"d4875be54cd4705236a8a0038d260bcef8e10c4a","after":"e3ea9f76f2fae3cc2fa18ec075b8b34f60b6a014","ref":"refs/heads/master","pushedAt":"2024-05-31T02:23:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-4036 JMS mailQueue should silent interuptedExceptions upon shutdown","shortMessageHtmlLink":"JAMES-4036 JMS mailQueue should silent interuptedExceptions upon shut…"}},{"before":"1f08a8eafee1d2c766228118b543995e1119e2af","after":"d4875be54cd4705236a8a0038d260bcef8e10c4a","ref":"refs/heads/master","pushedAt":"2024-05-30T12:31:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"JAMES-4037 Fix NPE in IMAP LIST with APPENDLIMIT (#2257)","shortMessageHtmlLink":"JAMES-4037 Fix NPE in IMAP LIST with APPENDLIMIT (#2257)"}},{"before":"076d5d0f52aee348703b800e4c40794143411b9b","after":"ae536b8dbc8ab2f56d6eea5610c9a0e175a4703e","ref":"refs/heads/postgresql","pushedAt":"2024-05-29T03:58:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-2586 Fix sequential issue with updating flags in the reactive pipeline","shortMessageHtmlLink":"JAMES-2586 Fix sequential issue with updating flags in the reactive p…"}},{"before":"cb474ea10185f41e007670e979dcdad9b0d75969","after":"098bf4227b83bbd8a3400ba084a55100be218826","ref":"refs/heads/droplist","pushedAt":"2024-05-29T02:14:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3946 DropList Cassandra and Memory app (#2263)","shortMessageHtmlLink":"JAMES-3946 DropList Cassandra and Memory app (#2263)"}},{"before":"a8980339652e77dc1abe413d565351ce5701115c","after":"1f08a8eafee1d2c766228118b543995e1119e2af","ref":"refs/heads/master","pushedAt":"2024-05-27T07:00:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"[IMPROVMENT] JMAP upload/download with more context (#2252)","shortMessageHtmlLink":"[IMPROVMENT] JMAP upload/download with more context (#2252)"}},{"before":"a7f59567ad152ebbb2f5b83a1b46ca52701b0e42","after":"dd55cb2aa74ac4592c0e1fb8bf1b8efd39dc7e74","ref":"refs/heads/3.8.x","pushedAt":"2024-05-27T06:59:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"JAMES-4037 Resolve MailboxTyper for Spring (#2255)","shortMessageHtmlLink":"JAMES-4037 Resolve MailboxTyper for Spring (#2255)"}},{"before":"0c5196a5a7618b2601e64a257b593bf05f1b909a","after":"a7f59567ad152ebbb2f5b83a1b46ca52701b0e42","ref":"refs/heads/3.8.x","pushedAt":"2024-05-27T06:59:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"JAMES-4037 Fix NPE in IMAP LIST with APPENDLIMIT (#2258)","shortMessageHtmlLink":"JAMES-4037 Fix NPE in IMAP LIST with APPENDLIMIT (#2258)"}},{"before":"32d09f9ec590f5bbde46aff634fc73fec282cd55","after":"a8980339652e77dc1abe413d565351ce5701115c","ref":"refs/heads/master","pushedAt":"2024-05-23T03:26:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-4037 Resolve MailboxTyper for Spring","shortMessageHtmlLink":"JAMES-4037 Resolve MailboxTyper for Spring"}},{"before":"a07585e19a64b82c2b0930873a622304621733b1","after":"32d09f9ec590f5bbde46aff634fc73fec282cd55","ref":"refs/heads/master","pushedAt":"2024-05-21T02:39:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3693 Update config-redis.xml\n\nfollowing the topology and readFrom configuration changes","shortMessageHtmlLink":"JAMES-3693 Update config-redis.xml"}},{"before":"cfeba0162d4fa7c8549069649976f2cac45b628b","after":"076d5d0f52aee348703b800e4c40794143411b9b","ref":"refs/heads/postgresql","pushedAt":"2024-05-20T05:01:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-2586 Update PoolBackedPostgresConnectionFactory to avoid running set-domain command in case of empty domain","shortMessageHtmlLink":"JAMES-2586 Update PoolBackedPostgresConnectionFactory to avoid runnin…"}},{"before":"412ee6850e53590e044a6725f7e0cd6332a94079","after":"a07585e19a64b82c2b0930873a622304621733b1","ref":"refs/heads/master","pushedAt":"2024-05-17T07:13:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-4033 Option to propagate event bus dispatch error\n\nAllowing for example IMAP APPEND command not to fail when RabbitMQ has issues.","shortMessageHtmlLink":"JAMES-4033 Option to propagate event bus dispatch error"}},{"before":"2ab06c3f6daa427e4f5e2f7c5897ce51f12c6a55","after":"412ee6850e53590e044a6725f7e0cd6332a94079","ref":"refs/heads/master","pushedAt":"2024-05-17T07:13:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"[ENHANCEMENT] Allow custom prefetch in Flux => InputStream convertions","shortMessageHtmlLink":"[ENHANCEMENT] Allow custom prefetch in Flux => InputStream convertions"}},{"before":"7acaac94f2cae728abffb5cd5dde393679c04f3c","after":"2ab06c3f6daa427e4f5e2f7c5897ce51f12c6a55","ref":"refs/heads/master","pushedAt":"2024-05-17T07:12:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-4034 SMTP submission: validate FROM header (#2246)","shortMessageHtmlLink":"JAMES-4034 SMTP submission: validate FROM header (#2246)"}},{"before":"e8aec7e00c20605d46bb3bbe93087869d53b8b5d","after":"7acaac94f2cae728abffb5cd5dde393679c04f3c","ref":"refs/heads/master","pushedAt":"2024-05-17T02:06:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"[ENHANCEMENT] MDN/send shall be reactive","shortMessageHtmlLink":"[ENHANCEMENT] MDN/send shall be reactive"}},{"before":"733bcc4d6b8153451abdb463d238c200044ebf6a","after":"e8aec7e00c20605d46bb3bbe93087869d53b8b5d","ref":"refs/heads/master","pushedAt":"2024-05-16T11:41:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"[ENHANCEMENT] Apply RabbitMQ classic queue version 2 (#2243)\n\n* [ENHANCEMENT] Apply classic queue version 2\r\n\r\nClaimed to be better than version 1 cf:\r\n- https://www.rabbitmq.com/blog/2023/05/17/rabbitmq-3.12-performance-improvements#classic-queues-massively-improved-classic-queues-v2-cqv2\r\n- https://www.rabbitmq.com/blog/2023/05/17/rabbitmq-3.12-performance-improvements#312-cqv1-vs-cqv2","shortMessageHtmlLink":"[ENHANCEMENT] Apply RabbitMQ classic queue version 2 (#2243)"}},{"before":"c887b22909638bbed49fbc740887668265bb3778","after":"733bcc4d6b8153451abdb463d238c200044ebf6a","ref":"refs/heads/master","pushedAt":"2024-05-15T03:16:49.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3693 Apply redis.readFrom to RedisRateLimiter","shortMessageHtmlLink":"JAMES-3693 Apply redis.readFrom to RedisRateLimiter"}},{"before":"213094d86abe6c1d107ea73e0c261390f4d4e4eb","after":"c887b22909638bbed49fbc740887668265bb3778","ref":"refs/heads/master","pushedAt":"2024-05-14T08:25:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"[Antora site] Add guideline for building Antora site with Docker (#2244)","shortMessageHtmlLink":"[Antora site] Add guideline for building Antora site with Docker (#2244)"}},{"before":"c8f089f37086e749c24615ee1677e558d9933590","after":"cb474ea10185f41e007670e979dcdad9b0d75969","ref":"refs/heads/droplist","pushedAt":"2024-05-14T07:29:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chibenwa","name":"Benoit TELLIER","path":"/chibenwa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6928740?s=80&v=4"},"commit":{"message":"JAMES-3946 add WebAdmin API to manage the DropList (#2241)","shortMessageHtmlLink":"JAMES-3946 add WebAdmin API to manage the DropList (#2241)"}},{"before":"3db15571a8629a80354adf20561f875dbe40ec03","after":"213094d86abe6c1d107ea73e0c261390f4d4e4eb","ref":"refs/heads/master","pushedAt":"2024-05-14T02:57:18.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"[METRICS] TimeMetric: introduce `record(Duration duration)` method\n\nTo integrate 3rd party metrics e.g. S3 SDK metrics.","shortMessageHtmlLink":"[METRICS] TimeMetric: introduce record(Duration duration) method"}},{"before":"846aa4a8f99fd79a3377dfd13cf041ed88151085","after":"cce32d4f5981e3147529a2c5071c20f00fc60ce1","ref":"refs/heads/3.7.x","pushedAt":"2024-05-14T02:31:22.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"[FIX] Solve weave/rest-smtp-sink: Docker image manifest v2 schema 1 deprecation issue (#2152)\n\ncf: https://docs.docker.com/engine/deprecated/#pushing-and-pulling-with-image-manifest-v2-schema-1\n\nUse a rebuilt image would be the trick.","shortMessageHtmlLink":"[FIX] Solve weave/rest-smtp-sink: Docker image manifest v2 schema 1 d…"}},{"before":"6b89b97761fb28f8de08db5e6a6e8ee115ae9fc4","after":"0c5196a5a7618b2601e64a257b593bf05f1b909a","ref":"refs/heads/3.8.x","pushedAt":"2024-05-14T02:31:09.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"[FIX] Solve weave/rest-smtp-sink: Docker image manifest v2 schema 1 deprecation issue (#2152)\n\ncf: https://docs.docker.com/engine/deprecated/#pushing-and-pulling-with-image-manifest-v2-schema-1\n\nUse a rebuilt image would be the trick.","shortMessageHtmlLink":"[FIX] Solve weave/rest-smtp-sink: Docker image manifest v2 schema 1 d…"}},{"before":"669b1ab2d00db2f8ac076c9360b49d255f0ea4de","after":"3db15571a8629a80354adf20561f875dbe40ec03","ref":"refs/heads/master","pushedAt":"2024-05-13T06:12:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3693 Fix guice binding Redis Health check in RateLimiter module","shortMessageHtmlLink":"JAMES-3693 Fix guice binding Redis Health check in RateLimiter module"}},{"before":"8ffaa40169a1f833252e987891378d550953565e","after":"669b1ab2d00db2f8ac076c9360b49d255f0ea4de","ref":"refs/heads/master","pushedAt":"2024-05-13T02:43:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3863 Update CORS headers for JMAP","shortMessageHtmlLink":"JAMES-3863 Update CORS headers for JMAP"}},{"before":"785f2e93f724aa96c530d314d2d4da001bab627c","after":"8ffaa40169a1f833252e987891378d550953565e","ref":"refs/heads/master","pushedAt":"2024-05-10T06:22:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3693 Update redis config to support master-replica topology (#2238)","shortMessageHtmlLink":"JAMES-3693 Update redis config to support master-replica topology (#2238"}},{"before":"b7488ac20e959b81b72f641d1ab1701f70c2640d","after":"785f2e93f724aa96c530d314d2d4da001bab627c","ref":"refs/heads/master","pushedAt":"2024-05-08T07:18:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"[IMPROVMENT] Reactify XUser authenticsation strategy (#2235)","shortMessageHtmlLink":"[IMPROVMENT] Reactify XUser authenticsation strategy (#2235)"}},{"before":"2ba5430907aacef1ec1c3598d617e0d9effe4abb","after":"b7488ac20e959b81b72f641d1ab1701f70c2640d","ref":"refs/heads/master","pushedAt":"2024-05-08T03:12:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3693 Add `rateLimiterTimeout` configuration for RateLimiter mailets","shortMessageHtmlLink":"JAMES-3693 Add rateLimiterTimeout configuration for RateLimiter mai…"}},{"before":"cd43e999a7f6b99fbf19c973d34ee608a75e15c4","after":"2ba5430907aacef1ec1c3598d617e0d9effe4abb","ref":"refs/heads/master","pushedAt":"2024-05-08T02:58:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Arsnael","name":"Rene Cordier","path":"/Arsnael","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9005025?s=80&v=4"},"commit":{"message":"JAMES-3693 Fixup RedisHealthCheck wrong check when Redis Cluster (#2224)","shortMessageHtmlLink":"JAMES-3693 Fixup RedisHealthCheck wrong check when Redis Cluster (#2224)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWMrp3AA","startCursor":null,"endCursor":null}},"title":"Activity · apache/james-project"}