Hi, Jason,

I am not sure that we should delay the 0.8.2 release. The reasons are (1)
There are other features such as the new java producer and Kafka-based
offset management that are potentially useful to people. (2) It may take
some time to completely fix the issue with deleting topic since it involves
wire protocol changes.

What we can do is probably just to document the limitation of delete topic
in 0.8.2.0 in our site.

Thanks,

Jun

On Mon, Jan 26, 2015 at 11:05 AM, Jason Rosenberg <j...@squareup.com> wrote:

> I think this shortcoming should probably delay release of 0.8.2 until
> resolved, no?
>
> On Mon, Jan 26, 2015 at 2:01 PM, Guozhang Wang <wangg...@gmail.com> wrote:
>
> > It then seems to me that delete-topic will not actually work "smoothly"
> > until create topic request is added since it is too much to require
> people
> > to turn off their clients while deleting topics. In this case shall we
> make
> > it clear in the release docs of in 0.8.2, or even still mark it as
> > not-supported?
> >
> > Guozhang
> >
> > On Mon, Jan 26, 2015 at 8:14 AM, Harsha <ka...@harsha.io> wrote:
> >
> > > Jun,
> > >       I made an attempt at fixing that issue as part of this JIRA
> > >       https://issues.apache.org/jira/browse/KAFKA-1507 .
> > > As Jay pointed out there should be admin api if there is more info on
> > > this api I am interested in adding/fixing this issue.
> > > Thanks,
> > > Harsha
> > >
> > > On Mon, Jan 26, 2015, at 07:28 AM, Jun Rao wrote:
> > > > Yes, that's the issue. Currently, topics can be auto-created on
> > > > TopicMetadataRequest, which can be issued from both the producer and
> > the
> > > > consumer. To prevent that, you would need to stop the producer and
> the
> > > > consumer before deleting a topic. We plan to address this issue once
> we
> > > > have a separate request for creating topics.
> > > >
> > > > Thanks,
> > > >
> > > > Jun
> > > >
> > > > On Mon, Jan 26, 2015 at 7:21 AM, Harsha <ka...@harsha.io> wrote:
> > > >
> > > > > There could be another case where if you have
> > auto.create.topics.enable
> > > > > to set to true ( its true by default) . Any TopicMetadataRequest
> can
> > > > > recreate topics. So if you issued a delete topic command and you
> have
> > > > > producers running or consumers? too which is issuing a
> > > > > TopicMetadataRequest than the topic will be recreated.
> > > > > -Harsha
> > > > >
> > > > > On Sun, Jan 25, 2015, at 11:26 PM, Jason Rosenberg wrote:
> > > > > > cversion did change (incremented by 2) when I issue the delete
> > > command.
> > > > > >
> > > > > > From the logs on the conroller broker (also the leader for the
> > > topic), it
> > > > > > looks like the delete proceeds, and then the topic gets recreated
> > > > > > immediately (highlighted in yellow). It appears maybe it’s due
> to a
> > > > > > consumer client app trying to consume the topic. Also, the
> consumer
> > > is
> > > > > > not
> > > > > > yet updated to 0.8.2 (it’s using 0.8.1.1), perhaps that’s part of
> > the
> > > > > > problem?
> > > > > >
> > > > > >
> > > > > > 2015-01-26 07:02:14,281  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.PartitionStateMachine$DeleteTopicsListener -
> > > > > > [DeleteTopicsListener on 6]: Starting topic deletion for topics
> > > > > > mytopic
> > > > > > 2015-01-26 07:02:14,282  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager$DeleteTopicsThread -
> > > > > > [delete-topics-thread-6], Handling deletion for topics mytopic
> > > > > > 2015-01-26 07:02:14,286  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager$DeleteTopicsThread -
> > > > > > [delete-topics-thread-6], Deletion of topic mytopic (re)started
> > > > > > 2015-01-26 07:02:14,286  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager - [Topic Deletion Manager 6],
> Topic
> > > > > > deletion callback for mytopic
> > > > > > 2015-01-26 07:02:14,289  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager - [Topic Deletion Manager 6],
> > > > > > Partition deletion callback for [mytopic,0]
> > > > > > 2015-01-26 07:02:14,295  INFO [delete-topics-thread-6]
> > > > > > controller.ReplicaStateMachine - [Replica state machine on
> > controller
> > > > > > 6]: Invoking state change to OfflineReplica for replicas
> > > > > >
> > > > >
> > >
> >
> [Topic=mytopic,Partition=0,Replica=7],[Topic=mytopic,Partition=0,Replica=6]
> > > > > > 2015-01-26 07:02:14,303  INFO [delete-topics-thread-6]
> > > > > > controller.KafkaController - [Controller 6]: New leader and ISR
> for
> > > > > > partition [mytopic,0] is {"leader":6,"leader_epoch":1,"isr":[6]}
> > > > > > 2015-01-26 07:02:14,312  INFO [delete-topics-thread-6]
> > > > > > controller.KafkaController - [Controller 6]: New leader and ISR
> for
> > > > > > partition [mytopic,0] is {"leader":-1,"leader_epoch":2,"isr":[]}
> > > > > > 2015-01-26 07:02:14,313  INFO [delete-topics-thread-6]
> > > > > > controller.ReplicaStateMachine - [Replica state machine on
> > controller
> > > > > > 6]: Invoking state change to ReplicaDeletionStarted for replicas
> > > > > >
> > > > >
> > >
> >
> [Topic=mytopic,Partition=0,Replica=7],[Topic=mytopic,Partition=0,Replica=6]
> > > > > > 2015-01-26 07:02:14,313  INFO [kafka-request-handler-5]
> > > > > > server.ReplicaFetcherManager - [ReplicaFetcherManager on broker
> 6]
> > > > > > Removed fetcher for partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,313  INFO [kafka-request-handler-7]
> > > > > > server.ReplicaFetcherManager - [ReplicaFetcherManager on broker
> 6]
> > > > > > Removed fetcher for partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,313  INFO [kafka-request-handler-7]
> > > > > > log.OffsetIndex - Deleting index
> > > > > > /mypath/mytopic-0/00000000000000000000.index
> > > > > > 2015-01-26 07:02:14,313  INFO [kafka-request-handler-7]
> > > log.LogManager
> > > > > > - Deleted log for partition [mytopic,0] in /mypath/mytopic-0.
> > > > > > 2015-01-26 07:02:14,314  INFO
> > [Controller-6-to-broker-6-send-thread]
> > > > > > controller.ReplicaStateMachine - [Replica state machine on
> > controller
> > > > > > 6]: Invoking state change to ReplicaDeletionSuccessful for
> replicas
> > > > > > [Topic=mytopic,Partition=0,Replica=6]
> > > > > > 2015-01-26 07:02:14,314  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager$DeleteTopicsThread -
> > > > > > [delete-topics-thread-6], Handling deletion for topics mytopic
> > > > > > 2015-01-26 07:02:14,316  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager$DeleteTopicsThread -
> > > > > > [delete-topics-thread-6], Deletion for replicas 7 for partition
> > > > > > [mytopic,0] of topic mytopic in progress
> > > > > > 2015-01-26 07:02:14,316  INFO
> > [Controller-6-to-broker-7-send-thread]
> > > > > > controller.ReplicaStateMachine - [Replica state machine on
> > controller
> > > > > > 6]: Invoking state change to ReplicaDeletionSuccessful for
> replicas
> > > > > > [Topic=mytopic,Partition=0,Replica=7]
> > > > > > 2015-01-26 07:02:14,316  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager$DeleteTopicsThread -
> > > > > > [delete-topics-thread-6], Handling deletion for topics mytopic
> > > > > > 2015-01-26 07:02:14,318  INFO [delete-topics-thread-6]
> > > > > > controller.ReplicaStateMachine - [Replica state machine on
> > controller
> > > > > > 6]: Invoking state change to NonExistentReplica for replicas
> > > > > >
> > > > >
> > >
> >
> [Topic=mytopic,Partition=0,Replica=6],[Topic=mytopic,Partition=0,Replica=7]
> > > > > > 2015-01-26 07:02:14,318  INFO [delete-topics-thread-6]
> > > > > > controller.PartitionStateMachine - [Partition state machine on
> > > > > > Controller 6]: Invoking state change to OfflinePartition for
> > > > > > partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,318  INFO [delete-topics-thread-6]
> > > > > > controller.PartitionStateMachine - [Partition state machine on
> > > > > > Controller 6]: Invoking state change to NonExistentPartition for
> > > > > > partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,325  WARN [kafka-request-handler-2]
> > > > > > server.ReplicaManager - [Replica Manager on Broker 6]: Fetch
> > request
> > > > > > with correlation id 2619442 from client ReplicaFetcherThread-0-6
> on
> > > > > > partition [mytopic,0] failed due to Partition [mytopic,0] doesn't
> > > > > > exist on 6
> > > > > > 2015-01-26 07:02:14,371  INFO [delete-topics-thread-6]
> > > > > > controller.TopicDeletionManager$DeleteTopicsThread -
> > > > > > [delete-topics-thread-6], Deletion of topic mytopic successfully
> > > > > > completed
> > > > > > 2015-01-26 07:02:14,376  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.PartitionStateMachine$TopicChangeListener -
> > > > > > [TopicChangeListener on Controller 6]: New topics: [Set()],
> deleted
> > > > > > topics: [Set()], new partition replica assignment [Map()]
> > > > > > 2015-01-26 07:02:14,403  WARN [request-expiration-task]
> > > > > > server.ReplicaManager - [Replica Manager on Broker 6]: Fetch
> > request
> > > > > > with correlation id 2054626 from client
> > > > > > myconsumer-1415333962444-cc78e67e-0-6 on partition [mytopic,0]
> > failed
> > > > > > due to Partition [mytopic,0] doesn't exist on 6
> > > > > > 2015-01-26 07:02:14,446  INFO [kafka-request-handler-5]
> > > > > > admin.AdminUtils$ - Topic creation
> > > > > > {"version":1,"partitions":{"0":[7,6]}}
> > > > > > 2015-01-26 07:02:14,457  INFO [kafka-request-handler-5]
> > > > > > server.KafkaApis - [KafkaApi-6] Auto creation of topic mytopic
> > with 1
> > > > > > partitions and replication factor 2 is successful!
> > > > > > 2015-01-26 07:02:14,458  INFO [kafka-network-thread-27330-2]
> > > > > > network.Processor - Closing socket connection to /10.1.10.4.
> > > > > > 2015-01-26 07:02:14,466  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.PartitionStateMachine$TopicChangeListener -
> > > > > > [TopicChangeListener on Controller 6]: New topics:
> [Set(mytopic)],
> > > > > > deleted topics: [Set()], new partition replica assignment
> > > > > > [Map([mytopic,0] -> List(7, 6))]
> > > > > > 2015-01-26 07:02:14,466  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.KafkaController - [Controller 6]: New topic creation
> > > > > > callback for [mytopic,0]
> > > > > > 2015-01-26 07:02:14,466  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.KafkaController - [Controller 6]: New partition
> creation
> > > > > > callback for [mytopic,0]
> > > > > > 2015-01-26 07:02:14,466  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.PartitionStateMachine - [Partition state machine on
> > > > > > Controller 6]: Invoking state change to NewPartition for
> partitions
> > > > > > [mytopic,0]
> > > > > > 2015-01-26 07:02:14,467  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.ReplicaStateMachine - [Replica state machine on
> > controller
> > > > > > 6]: Invoking state change to NewReplica for replicas
> > > > > >
> > > > >
> > >
> >
> [Topic=mytopic,Partition=0,Replica=7],[Topic=mytopic,Partition=0,Replica=6]
> > > > > > 2015-01-26 07:02:14,468  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.PartitionStateMachine - [Partition state machine on
> > > > > > Controller 6]: Invoking state change to OnlinePartition for
> > > partitions
> > > > > > [mytopic,0]
> > > > > > 2015-01-26 07:02:14,530  INFO
> > > > > > [ZkClient-EventThread-21-myzkserver:12345/mynamespace]
> > > > > > controller.ReplicaStateMachine - [Replica state machine on
> > controller
> > > > > > 6]: Invoking state change to OnlineReplica for replicas
> > > > > >
> > > > >
> > >
> >
> [Topic=mytopic,Partition=0,Replica=7],[Topic=mytopic,Partition=0,Replica=6]
> > > > > > 2015-01-26 07:02:14,532  INFO [kafka-request-handler-5] log.Log -
> > > > > > Completed load of log mytopic-0 with log end offset 0
> > > > > > 2015-01-26 07:02:14,533  INFO [kafka-request-handler-5]
> > > log.LogManager
> > > > > > - Created log for partition [mytopic,0] in /mypath with
> properties
> > > > > > {segment.index.bytes -> 10485760, file.delete.delay.ms -> 60000,
> > > > > > segment.bytes -> 1073741824, flush.ms -> 9223372036854775807,
> > > > > > delete.retention.ms -> 86400000, index.interval.bytes -> 4096,
> > > > > > retention.bytes -> 50000000000, min.insync.replicas -> 1,
> > > > > > cleanup.policy -> delete, unclean.leader.election.enable -> true,
> > > > > > segment.ms -> 604800000, max.message.bytes -> 1000012,
> > > flush.messages
> > > > > > -> 9223372036854775807, min.cleanable.dirty.ratio -> 0.5,
> > > retention.ms
> > > > > > -> 86400000, segment.jitter.ms -> 0}.
> > > > > > 2015-01-26 07:02:14,540  INFO [kafka-request-handler-5]
> > > > > > server.ReplicaFetcherManager - [ReplicaFetcherManager on broker
> 6]
> > > > > > Removed fetcher for partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,540  INFO [kafka-request-handler-5] log.Log -
> > > > > > Truncating log mytopic-0 to offset 0.
> > > > > > 2015-01-26 07:02:14,547  INFO [kafka-request-handler-5]
> > > > > > server.ReplicaFetcherManager - [ReplicaFetcherManager on broker
> 6]
> > > > > > Added fetcher for partitions List([[mytopic,0], initOffset 0 to
> > > broker
> > > > > > id:7,host:mybroker:54321] )
> > > > > >
> > > > > > Here’s the log in the other broker with a replica of the topic.
> > > > > >
> > > > > > 2015-01-26 07:02:14,312  INFO [kafka-request-handler-7]
> > > > > > server.ReplicaFetcherManager - [ReplicaFetcherManager on broker
> 7]
> > > > > > Removed fetcher for partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,313  INFO [kafka-request-handler-2]
> > > > > > server.ReplicaFetcherManager - [ReplicaFetcherManager on broker
> 7]
> > > > > > Removed fetcher for partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,313  INFO [kafka-request-handler-2]
> > > > > > log.OffsetIndex - Deleting index
> > > > > > /mypath/mytopic-0/00000000000000000000.index
> > > > > > 2015-01-26 07:02:14,313  INFO [kafka-request-handler-2]
> > > log.LogManager
> > > > > > - Deleted log for partition [mytopic,0] in /mypath/mytopic-0.
> > > > > > 2015-01-26 07:02:14,530  INFO [kafka-request-handler-0]
> > > > > > server.ReplicaFetcherManager - [ReplicaFetcherManager on broker
> 7]
> > > > > > Removed fetcher for partitions [mytopic,0]
> > > > > > 2015-01-26 07:02:14,532  INFO [kafka-request-handler-0] log.Log -
> > > > > > Completed load of log mytopic-0 with log end offset 0
> > > > > > 2015-01-26 07:02:14,533  INFO [kafka-request-handler-0]
> > > log.LogManager
> > > > > > - Created log for partition [mytopic,0] in /mypath with
> properties
> > > > > > {segment.index.bytes -> 10485760, file.delete.delay.ms -> 60000,
> > > > > > segment.bytes -> 1073741824, flush.ms -> 9223372036854775807,
> > > > > > delete.retention.ms -> 86400000, index.interval.bytes -> 4096,
> > > > > > retention.bytes -> 50000000000, min.insync.replicas -> 1,
> > > > > > cleanup.policy -> delete, unclean.leader.election.enable -> true,
> > > > > > segment.ms -> 604800000, max.message.bytes -> 1000012,
> > > flush.messages
> > > > > > -> 9223372036854775807, min.cleanable.dirty.ratio -> 0.5,
> > > retention.ms
> > > > > > -> 86400000, segment.jitter.ms -> 0}.
> > > > > >
> > > > > > On Mon, Jan 26, 2015 at 1:26 AM, Jun Rao <j...@confluent.io>
> wrote:
> > > > > >
> > > > > > Could you do a get on /admin/deleted_topics and see if its
> cversion
> > > > > > changes
> > > > > > > after issuing the delete topic command? This will tell us
> whether
> > > the
> > > > > > > path /admin/deleted_topics//mytopic
> > > > > > > is actually created or not. Anything in the controller log that
> > > > > indicates a
> > > > > > > delete topic event is fired?
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Jun
> > > > > > >
> > > > > > > On Sun, Jan 25, 2015 at 9:55 PM, Jason Rosenberg <
> > j...@squareup.com
> > > >
> > > > > wrote:
> > > > > > >
> > > > > > > > yes
> > > > > > > >
> > > > > > > > On Mon, Jan 26, 2015 at 12:18 AM, Jun Rao <j...@confluent.io>
> > > wrote:
> > > > > > > >
> > > > > > > > > Do you have delete.topic.enable turned on in all brokers?
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > >
> > > > > > > > > Jun
> > > > > > > > >
> > > > > > > > > On Sun, Jan 25, 2015 at 7:56 PM, Jason Rosenberg <
> > > j...@squareup.com
> > > > > >
> > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > So far, I have been unable to get delete topic to work,
> > with
> > > > > release
> > > > > > > > > > candidate 2 for 0.8.2.
> > > > > > > > > >
> > > > > > > > > > It worked ok when I ran it in the debugger locally, on a
> > > single
> > > > > node
> > > > > > > > > > instance. But when I run it in our staging environment,
> it
> > > is not
> > > > > > > > > > successfully even marking the topic for delete, for some
> > > reason.
> > > > > > > > > >
> > > > > > > > > > I am setting delete.topic.enable to true (and see the
> > > > > confirmation of
> > > > > > > > > this
> > > > > > > > > > in the startup logs, e.g.):
> > > > > > > > > >
> > > > > > > > > > INFO [main] utils.VerifiableProperties - Property
> > > > > delete.topic.enable
> > > > > > > > > > is overridden to true
> > > > > > > > > >
> > > > > > > > > > I run this command:
> > > > > > > > > >
> > > > > > > > > > java -cp app.jar kafka.admin.TopicCommand --zookeeper
> > > > > > > > > > myzkconnect:12345/mynamespace --delete --topic mytopic
> > > > > > > > > >
> > > > > > > > > > log4j:WARN No appenders could be found for logger
> > > > > > > > > > (org.I0Itec.zkclient.ZkConnection).
> > > > > > > > > > log4j:WARN Please initialize the log4j system properly.
> > > > > > > > > > log4j:WARN No appenders could be found for logger
> > > > > > > > > > (org.I0Itec.zkclient.ZkEventThread).
> > > > > > > > > > log4j:WARN See
> > > > > http://logging.apache.org/log4j/1.2/faq.html#noconfig
> > > > > > > > > > for more info.
> > > > > > > > > > log4j:WARN Please initialize the log4j system properly.
> > > > > > > > > > log4j:WARN See
> > > > > http://logging.apache.org/log4j/1.2/faq.html#noconfig
> > > > > > > > > > for more info.
> > > > > > > > > > Topic mytopic is marked for deletion.
> > > > > > > > > > Note: This will have no impact if delete.topic.enable is
> > not
> > > set
> > > > > to
> > > > > > > > true.
> > > > > > > > > >
> > > > > > > > > > I then do a —list which should at least show the topic
> > > marked for
> > > > > > > > > deletion:
> > > > > > > > > >
> > > > > > > > > > java -cp app.jar kafka.admin.TopicCommand --zookeeper
> > > > > > > > > > myzkconnect:12345/mynamespace --list --topic mytopic
> > > > > > > > > >
> > > > > > > > > > log4j:WARN No appenders could be found for logger
> > > > > > > > > > (org.I0Itec.zkclient.ZkConnection).
> > > > > > > > > > log4j:WARN No appenders could be found for logger
> > > > > > > > > > (org.I0Itec.zkclient.ZkEventThread).
> > > > > > > > > > log4j:WARN Please initialize the log4j system properly.
> > > > > > > > > > log4j:WARN Please initialize the log4j system properly.
> > > > > > > > > > log4j:WARN See
> > > > > http://logging.apache.org/log4j/1.2/faq.html#noconfig
> > > > > > > > > > for more info.
> > > > > > > > > > log4j:WARN See
> > > > > http://logging.apache.org/log4j/1.2/faq.html#noconfig
> > > > > > > > > > for more info.
> > > > > > > > > > mytopic
> > > > > > > > > >
> > > > > > > > > > Note, it doesn’t list it as ‘marked for deletion’.
> > > Furthermore,
> > > > > > > waiting
> > > > > > > > > > multiple hours still doesn’t result in the topic being
> > > deleted.
> > > > > > > > > >
> > > > > > > > > > The topic has 1 partition, 2 replicas, and no data
> stored.
> > > > > > > > > >
> > > > > > > > > > In zookeeper, the /admin/deleted_topics/ path is empty.
> > > > > > > > > >
> > > > > > > > > > The zookeeper code looks pretty straightforward, but for
> > some
> > > > > reason
> > > > > > > is
> > > > > > > > > not
> > > > > > > > > > writing the deleted_topics path.  We are running
> zookeeper
> > > 3.4.6.
> > > > > > > > > >
> > > > > > > > > > Thoughts?
> > > > > > > > > >
> > > > > > > > > > Jason
> > > > > > > > > > ​
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > ​
> > > > >
> > >
> >
> >
> >
> > --
> > -- Guozhang
> >
>

Reply via email to