<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:05:28 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[KAFKA-57] Allow restart sink connector in case of drop and recreate of collection, i.e. proper handling of invalidate events</title>
                <link>https://jira.mongodb.org/browse/KAFKA-57</link>
                <project id="16285" key="KAFKA">Kafka Connector</project>
                    <description>&lt;p&gt;I dropped a collection and recreated it with the same name. The startup of the source connector cannot happen, due to an invalid resume token:&lt;/p&gt;

&lt;p&gt;{{&lt;span class=&quot;error&quot;&gt;&amp;#91;2019-08-21 09:23:02,602&amp;#93;&lt;/span&gt; ERROR WorkerSourceTask&lt;/p&gt;
{id=mongo-atlas-democluster-inventory-source-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:179)&lt;br/&gt;
com.mongodb.MongoCommandException: Command failed with error 260 (InvalidResumeToken): &apos;Attempted to resume a stream on a collection which has been dropped. The change stream&apos;s pipeline may need to make comparisons which should respect the collection&apos;s default collation, which can no longer be determined.&apos; on server democluster-shard-00-02-9xl5i.mongodb.net:27017. The full response is {&quot;operationTime&quot;: {&quot;$timestamp&quot;: {&quot;t&quot;: 1566379378, &quot;i&quot;: 1}}, &quot;ok&quot;: 0.0, &quot;errmsg&quot;: &quot;Attempted to resume a stream on a collection which has been dropped. The change stream&apos;s pipeline may need to make comparisons which should respect the collection&apos;s default collation, which can no longer be determined.&quot;, &quot;code&quot;: 260, &quot;codeName&quot;: &quot;InvalidResumeToken&quot;, &quot;$clusterTime&quot;: {&quot;clusterTime&quot;: {&quot;$timestamp&quot;: {&quot;t&quot;: 1566379378, &quot;i&quot;: 1}}, &quot;signature&quot;: {&quot;hash&quot;: {&quot;$binary&quot;: &quot;8KpkHutFLiWBW8QQNNCS9bxIS0c=&quot;, &quot;$type&quot;: &quot;00&quot;}, &quot;keyId&quot;: {&quot;$numberLong&quot;: &quot;6683096432586522625&quot;}}}}&lt;br/&gt;
	at com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:179)&lt;br/&gt;
	at com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse(InternalStreamConnection.java:299)&lt;br/&gt;
	at com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:255)&lt;br/&gt;
	at com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:99)&lt;br/&gt;
	at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:444)&lt;br/&gt;
	at com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:72)&lt;br/&gt;
	at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:200)&lt;br/&gt;
	at com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:269)&lt;br/&gt;
	at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:131)&lt;br/&gt;
	at com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:123)&lt;br/&gt;
	at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:243)&lt;br/&gt;
	at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:234)&lt;br/&gt;
	at com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:137)&lt;br/&gt;
	at com.mongodb.operation.AggregateOperationImpl$1.call(AggregateOperationImpl.java:196)&lt;br/&gt;
	at com.mongodb.operation.AggregateOperationImpl$1.call(AggregateOperationImpl.java:192)&lt;br/&gt;
	at com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:462)&lt;br/&gt;
	at com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:406)&lt;br/&gt;
	at com.mongodb.operation.AggregateOperationImpl.execute(AggregateOperationImpl.java:192)&lt;br/&gt;
	at com.mongodb.operation.ChangeStreamOperation.execute(ChangeStreamOperation.java:265)&lt;br/&gt;
	at com.mongodb.operation.ChangeStreamOperation.execute(ChangeStreamOperation.java:55)&lt;br/&gt;
	at com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:179)&lt;br/&gt;
	at com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:132)&lt;br/&gt;
	at com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:86)&lt;br/&gt;
	at com.mongodb.kafka.connect.source.MongoSourceTask.createCursor(MongoSourceTask.java:203)&lt;br/&gt;
	at com.mongodb.kafka.connect.source.MongoSourceTask.start(MongoSourceTask.java:92)&lt;br/&gt;
	at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:199)&lt;br/&gt;
	at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:177)&lt;br/&gt;
	at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:227)&lt;br/&gt;
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)&lt;br/&gt;
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)&lt;br/&gt;
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&lt;br/&gt;
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&lt;br/&gt;
	at java.lang.Thread.run(Thread.java:748)&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2019-08-21 09:23:02,608&amp;#93;&lt;/span&gt; ERROR WorkerSourceTask{id=mongo-atlas-democluster-inventory-source-0}
&lt;p&gt; Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:180)&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2019-08-21 09:23:02,612&amp;#93;&lt;/span&gt; INFO Closed connection [connectionId&lt;/p&gt;
{localValue:4, serverValue:531}
&lt;p&gt;] to democluster-shard-00-02-9xl5i.mongodb.net:27017 because the pool has been closed. (org.mongodb.driver.connection:71)&lt;br/&gt;
}}&lt;/p&gt;

&lt;p&gt;The source connector should listen to invalidate events and clear the resume token (plus necessary logging). What additional cases could appear that we should handle in case of invalidate events?&lt;/p&gt;</description>
                <environment></environment>
        <key id="902468">KAFKA-57</key>
            <summary>Allow restart sink connector in case of drop and recreate of collection, i.e. proper handling of invalidate events</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="ross@mongodb.com">Ross Lawley</assignee>
                                    <reporter username="christian.kurze@mongodb.com">Christian Kurze</reporter>
                        <labels>
                    </labels>
                <created>Wed, 21 Aug 2019 09:30:40 +0000</created>
                <updated>Sat, 28 Oct 2023 10:46:22 +0000</updated>
                            <resolved>Fri, 6 Dec 2019 16:20:27 +0000</resolved>
                                    <version>0.2</version>
                                    <fixVersion>1.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="2589857" author="xgen-internal-githook" created="Fri, 6 Dec 2019 16:19:49 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;email&apos;: &apos;ross.lawley@gmail.com&apos;, &apos;name&apos;: &apos;Ross Lawley&apos;, &apos;username&apos;: &apos;rozza&apos;}
&lt;p&gt;Message: Resilient source&lt;/p&gt;

&lt;p&gt;Can now support non-existent collections / databases&lt;br/&gt;
And collection drops&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/KAFKA-57&quot; title=&quot;Allow restart sink connector in case of drop and recreate of collection, i.e. proper handling of invalidate events&quot; class=&quot;issue-link&quot; data-issue-key=&quot;KAFKA-57&quot;&gt;&lt;del&gt;KAFKA-57&lt;/del&gt;&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/browse/KAFKA-59&quot; title=&quot;Ensure source connector can support non existing database / collection&quot; class=&quot;issue-link&quot; data-issue-key=&quot;KAFKA-59&quot;&gt;&lt;del&gt;KAFKA-59&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-kafka/commit/f440809510ad5dc934a81ae0731b9d6646500703&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-kafka/commit/f440809510ad5dc934a81ae0731b9d6646500703&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="2571418" author="ross@10gen.com" created="Thu, 28 Nov 2019 11:38:33 +0000"  >&lt;p&gt;PR: &lt;a href=&quot;https://github.com/rozza/mongo-kafka/pull/7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/rozza/mongo-kafka/pull/7&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>KAFKA-60</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hvawd3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>