[jira] [Created] (KAFKA-2288) Follow-up to KAFKA-2249 - reduce logging and testing

2015-06-19 Thread Gwen Shapira (JIRA)
Gwen Shapira created KAFKA-2288:
---

 Summary: Follow-up to KAFKA-2249 - reduce logging and testing
 Key: KAFKA-2288
 URL: https://issues.apache.org/jira/browse/KAFKA-2288
 Project: Kafka
  Issue Type: Bug
Reporter: Gwen Shapira


As [~junrao] commented on KAFKA-2249, we have a needless test and we are 
logging configuration for every single partition now. 

Lets reduce the noise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (KAFKA-2288) Follow-up to KAFKA-2249 - reduce logging and testing

2015-06-19 Thread Gwen Shapira (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gwen Shapira reassigned KAFKA-2288:
---

Assignee: Gwen Shapira

 Follow-up to KAFKA-2249 - reduce logging and testing
 

 Key: KAFKA-2288
 URL: https://issues.apache.org/jira/browse/KAFKA-2288
 Project: Kafka
  Issue Type: Bug
Reporter: Gwen Shapira
Assignee: Gwen Shapira

 As [~junrao] commented on KAFKA-2249, we have a needless test and we are 
 logging configuration for every single partition now. 
 Lets reduce the noise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (KAFKA-2291) Documentation Error

2015-06-19 Thread UTKARSH BHATNAGAR (JIRA)
UTKARSH BHATNAGAR created KAFKA-2291:


 Summary: Documentation Error
 Key: KAFKA-2291
 URL: https://issues.apache.org/jira/browse/KAFKA-2291
 Project: Kafka
  Issue Type: Bug
  Components: website
Reporter: UTKARSH BHATNAGAR
Priority: Trivial


http://kafka.apache.org/documentation.html#design

Under the design section, the last second paragraph says this Finally in cases 
where the stream is fed into other data systems for serving we new[knew] the 
system would have to be able to guarantee fault-tolerance in the presence of 
machine failures. But there is a spelling mistake, it should be knew instead 
of new.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: [DISCUSS] KIP-26 - Add Copycat, a connector framework for data import/export

2015-06-19 Thread Gwen Shapira
I think BikeShed will be a great name.

Can you clarify the scope? The KIP discusses a framework and also few
examples for connectors. Does the addition include just the framework
(and perhaps an example or two), or do we plan to start accepting
connectors to Apache Kafka project?

Gwen

On Thu, Jun 18, 2015 at 3:09 PM, Jay Kreps j...@confluent.io wrote:
 I think the only problem we came up with was that Kafka KopyKat abbreviates
 as KKK which is not ideal in the US. Copykat would still be googlable
 without that issue. :-)

 -Jay

 On Thu, Jun 18, 2015 at 1:20 PM, Otis Gospodnetic 
 otis.gospodne...@gmail.com wrote:

 Just a comment on the name. KopyKat? More unique, easy to write,
 pronounce, remember...

 Otis



  On Jun 18, 2015, at 13:36, Jay Kreps j...@confluent.io wrote:
 
  1. We were calling the plugins connectors (which is kind of a generic way
  to say either source or sink) and the framework copycat. The pro of
 copycat
  is it is kind of fun. The con is that it doesn't really say what it does.
  The Kafka Connector Framework would be a duller but more intuitive name,
  but I suspect people would then just shorten it to KCF which again has no
  intuitive meaning.
 
  2. Potentially. One alternative we had thought of wrt the consumer was to
  have the protocol just handle the group management part and have the
  partition assignment be purely driven by the client. At the time copycat
  wasn't even a twinkle in our eyes so we weren't really thinking about
 that.
  There were pros and cons to this and we decided it was better to do
  partition assignment on the broker side. We could revisit this, it might
  not be a massive change in the consumer, but it would definitely add work
  there. I do agree that if we have learned one thing it is to keep clients
  away from zk. This zk usage is more limited though, in that there is no
  intention of having copycat in different languages as the clients are.
 
  4. I think the idea is to include the structural schema information you
  have available so it can be taken advantage of. Obviously the easiest
  approach would just be to have a static schema for the messages like
  timestamp + string/byte[]. However this means that i the source has
 schema
  information there is no real official way to propagate that. Having a
 real
  built-in schema mechanism gives you a little more power to make the data
  usable. So if you were publishing apache logs the low-touch generic way
  would just be to have the schema be string since that is what apache
 log
  entries are. However if you had the actual format string used for the log
  you could use that to have a richer schema and parse out the individual
  fields, which is significantly more usable. The advantage of this is that
  systems like databases, Hadoop, and so on that have some notion of
 schemas
  can take advantage of this information that is captured with the source
  data. So, e.g. the JDBC plugin can map the individual fields to columns
  automatically, and you can support features like projecting out
 particular
  fields and renaming fields easily without having to write custom
  source-specific code.
 
  -Jay
 
  On Tue, Jun 16, 2015 at 5:00 PM, Joe Stein joe.st...@stealth.ly
 wrote:
 
  Hey Ewen, very interesting!
 
  I like the idea of the connector and making one side always being Kafka
 for
  all the reasons you mentioned. It makes having to build consumers (over
 and
  over and over (and over)) again for these type of tasks much more
  consistent for everyone.
 
  Some initial comments (will read a few more times and think more through
  it).
 
  1) Copycat, it might be weird/hard to talk about producers, consumers,
  brokers and copycat for what and how kafka runs. I think the other
 naming
  makes sense but maybe we can call it something else? Sinks or whatever
  (don't really care just bringing up it might be something to consider).
 We
  could also just call it connectors...dunno producers, consumers,
  brokers and connectors...
 
  2) Can we do copycat-workers without having to rely on Zookeeper? So
 much
  work has been done to remove this dependency if we can do something
 without
  ZK lets try (or at least abstract it so it is easier later to make it
  pluggable).
 
  3) Even though connectors being managed in project has already been
  rejected... maybe we want to have a few (or one) that are in the project
  and maintained. This makes out of the box really out of the box (if only
  file or hdfs or something).
 
  4) all records include schemas which describe the format of their
 data I
  don't totally get this... a lot of data doesn't have the schema with
 it, we
  have to plug that in... so would the plugin you are talking about for
  serializer would inject the schema to use with the record when it sees
 the
  data?
 
 
  ~ Joe Stein
  - - - - - - - - - - - - - - - - -
 
   http://www.stealth.ly
  - - - - - - - - - - - - - - - - -
 
  On Tue, Jun 16, 2015 at 4:33 PM, Ewen 

[GitHub] kafka pull request: KAFKA-2289: KafkaProducer logs erroneous warni...

2015-06-19 Thread hgschmie
GitHub user hgschmie opened a pull request:

https://github.com/apache/kafka/pull/71

KAFKA-2289: KafkaProducer logs erroneous warning on startup

This change fixes the problem.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/hgschmie/kafka KAFKA-2289

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/kafka/pull/71.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #71


commit ef6c0961c905d65ff8997a1ba7a09ded617b9837
Author: Henning Schmiedehausen henn...@groupon.com
Date:   2015-06-19T23:17:38Z

KAFKA-2289: KafkaProducer logs erroneous warning on startup

This change fixes the problem.




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


Build failed in Jenkins: Kafka-trunk #515

2015-06-19 Thread Apache Jenkins Server
See https://builds.apache.org/job/Kafka-trunk/515/changes

Changes:

[junrao] kafka-2265; creating a topic with large number of partitions takes a 
long time; patched by Manikumar Reddy; reviewed by Jun Rao

[junrao] kafka-2234; Partition reassignment of a nonexistent topic prevents 
future reassignments; patched by Manikumar Reddy; reviewed by Jun Rao

[junrao] trivial change to fix unit test failure introduced in kafka-2234

[junrao] kafka-1758; corrupt recovery file prevents startup; patched by 
Manikumar Reddy; reviewed by Neha Narkhede and Jun Rao

[junrao] kafka-1646; Improve consumer read performance for Windows; patched by 
Honghai Chen; reviewed by Jay Kreps and Jun Rao

[junrao] kafka-2012; Broker should automatically handle corrupt index files;  
patched by Manikumar Reddy; reviewed by Jun Rao

--
[...truncated 772 lines...]
kafka.log.LogConfigTest  testFromPropsEmpty PASSED

kafka.log.LogConfigTest  testFromPropsToProps PASSED

kafka.log.LogConfigTest  testFromPropsInvalid PASSED

kafka.log.OffsetMapTest  testBasicValidation PASSED

kafka.log.OffsetMapTest  testClear PASSED

kafka.log.LogManagerTest  testCreateLog PASSED

kafka.log.LogManagerTest  testGetNonExistentLog PASSED

kafka.log.LogManagerTest  testCleanupExpiredSegments PASSED

kafka.log.LogManagerTest  testCleanupSegmentsToMaintainSize PASSED

kafka.log.LogManagerTest  testTimeBasedFlush PASSED

kafka.log.LogManagerTest  testLeastLoadedAssignment PASSED

kafka.log.LogManagerTest  testTwoLogManagersUsingSameDirFails PASSED

kafka.log.LogManagerTest  testCheckpointRecoveryPoints PASSED

kafka.log.LogManagerTest  testRecoveryDirectoryMappingWithTrailingSlash PASSED

kafka.log.LogManagerTest  testRecoveryDirectoryMappingWithRelativeDirectory 
PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[0] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[1] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[2] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[3] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[4] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[5] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[6] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[7] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[8] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[9] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[10] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[11] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[12] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[13] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[14] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[15] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[16] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[17] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[18] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[19] PASSED

kafka.log.LogTest  testTimeBasedLogRoll PASSED

kafka.log.LogTest  testTimeBasedLogRollJitter PASSED

kafka.log.LogTest  testSizeBasedLogRoll PASSED

kafka.log.LogTest  testLoadEmptyLog PASSED

kafka.log.LogTest  testAppendAndReadWithSequentialOffsets PASSED

kafka.log.LogTest  testAppendAndReadWithNonSequentialOffsets PASSED

kafka.log.LogTest  testReadAtLogGap PASSED

kafka.log.LogTest  testReadOutOfRange PASSED

kafka.log.LogTest  testLogRolls PASSED

kafka.log.LogTest  testCompressedMessages PASSED

kafka.log.LogTest  testThatGarbageCollectingSegmentsDoesntChangeOffset PASSED

kafka.log.LogTest  testMessageSetSizeCheck PASSED

kafka.log.LogTest  testCompactedTopicConstraints PASSED

kafka.log.LogTest  testMessageSizeCheck PASSED

kafka.log.LogTest  testLogRecoversToCorrectOffset PASSED

kafka.log.LogTest  testIndexRebuild PASSED

kafka.log.LogTest  testCorruptIndexRebuild PASSED

kafka.log.LogTest  testTruncateTo PASSED

kafka.log.LogTest  testIndexResizingAtTruncation PASSED

kafka.log.LogTest  testBogusIndexSegmentsAreRemoved PASSED

kafka.log.LogTest  testReopenThenTruncate PASSED

kafka.log.LogTest  testAsyncDelete PASSED

kafka.log.LogTest  testOpenDeletesObsoleteFiles PASSED

kafka.log.LogTest  testAppendMessageWithNullPayload PASSED

kafka.log.LogTest  testCorruptLog PASSED

kafka.log.LogTest  testCleanShutdownFile PASSED

kafka.log.LogTest  testParseTopicPartitionName PASSED

kafka.log.LogTest  testParseTopicPartitionNameForEmptyName PASSED

kafka.log.LogTest  testParseTopicPartitionNameForNull PASSED

kafka.log.LogTest  testParseTopicPartitionNameForMissingSeparator PASSED

kafka.log.LogTest  testParseTopicPartitionNameForMissingTopic PASSED

kafka.log.LogTest  testParseTopicPartitionNameForMissingPartition PASSED

kafka.log.LogCleanerIntegrationTest  

Re: [DISCUSS] KIP-26 - Add Copycat, a connector framework for data import/export

2015-06-19 Thread Jay Kreps
I think we want the connectors to be federated just because trying to
maintain all the connectors centrally would be really painful. I think if
we really do this well we would want to have 100 of these connectors so it
really won't make sense to maintain them with the project. I think the
thought was just to include the framework and maybe one simple connector as
an example.

Thoughts?

-Jay

On Fri, Jun 19, 2015 at 2:38 PM, Gwen Shapira gshap...@cloudera.com wrote:

 I think BikeShed will be a great name.

 Can you clarify the scope? The KIP discusses a framework and also few
 examples for connectors. Does the addition include just the framework
 (and perhaps an example or two), or do we plan to start accepting
 connectors to Apache Kafka project?

 Gwen

 On Thu, Jun 18, 2015 at 3:09 PM, Jay Kreps j...@confluent.io wrote:
  I think the only problem we came up with was that Kafka KopyKat
 abbreviates
  as KKK which is not ideal in the US. Copykat would still be googlable
  without that issue. :-)
 
  -Jay
 
  On Thu, Jun 18, 2015 at 1:20 PM, Otis Gospodnetic 
  otis.gospodne...@gmail.com wrote:
 
  Just a comment on the name. KopyKat? More unique, easy to write,
  pronounce, remember...
 
  Otis
 
 
 
   On Jun 18, 2015, at 13:36, Jay Kreps j...@confluent.io wrote:
  
   1. We were calling the plugins connectors (which is kind of a generic
 way
   to say either source or sink) and the framework copycat. The pro of
  copycat
   is it is kind of fun. The con is that it doesn't really say what it
 does.
   The Kafka Connector Framework would be a duller but more intuitive
 name,
   but I suspect people would then just shorten it to KCF which again
 has no
   intuitive meaning.
  
   2. Potentially. One alternative we had thought of wrt the consumer
 was to
   have the protocol just handle the group management part and have the
   partition assignment be purely driven by the client. At the time
 copycat
   wasn't even a twinkle in our eyes so we weren't really thinking about
  that.
   There were pros and cons to this and we decided it was better to do
   partition assignment on the broker side. We could revisit this, it
 might
   not be a massive change in the consumer, but it would definitely add
 work
   there. I do agree that if we have learned one thing it is to keep
 clients
   away from zk. This zk usage is more limited though, in that there is
 no
   intention of having copycat in different languages as the clients are.
  
   4. I think the idea is to include the structural schema information
 you
   have available so it can be taken advantage of. Obviously the easiest
   approach would just be to have a static schema for the messages like
   timestamp + string/byte[]. However this means that i the source has
  schema
   information there is no real official way to propagate that. Having a
  real
   built-in schema mechanism gives you a little more power to make the
 data
   usable. So if you were publishing apache logs the low-touch generic
 way
   would just be to have the schema be string since that is what apache
  log
   entries are. However if you had the actual format string used for the
 log
   you could use that to have a richer schema and parse out the
 individual
   fields, which is significantly more usable. The advantage of this is
 that
   systems like databases, Hadoop, and so on that have some notion of
  schemas
   can take advantage of this information that is captured with the
 source
   data. So, e.g. the JDBC plugin can map the individual fields to
 columns
   automatically, and you can support features like projecting out
  particular
   fields and renaming fields easily without having to write custom
   source-specific code.
  
   -Jay
  
   On Tue, Jun 16, 2015 at 5:00 PM, Joe Stein joe.st...@stealth.ly
  wrote:
  
   Hey Ewen, very interesting!
  
   I like the idea of the connector and making one side always being
 Kafka
  for
   all the reasons you mentioned. It makes having to build consumers
 (over
  and
   over and over (and over)) again for these type of tasks much more
   consistent for everyone.
  
   Some initial comments (will read a few more times and think more
 through
   it).
  
   1) Copycat, it might be weird/hard to talk about producers,
 consumers,
   brokers and copycat for what and how kafka runs. I think the other
  naming
   makes sense but maybe we can call it something else? Sinks or
 whatever
   (don't really care just bringing up it might be something to
 consider).
  We
   could also just call it connectors...dunno producers,
 consumers,
   brokers and connectors...
  
   2) Can we do copycat-workers without having to rely on Zookeeper? So
  much
   work has been done to remove this dependency if we can do something
  without
   ZK lets try (or at least abstract it so it is easier later to make it
   pluggable).
  
   3) Even though connectors being managed in project has already been
   rejected... maybe we want to have a few (or one) that are 

[jira] [Resolved] (KAFKA-2286) Cannot produce messages remotely: No partition metadata for topic test due to kafka.common.LeaderNotAvailableException

2015-06-19 Thread Mike Bridge (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Bridge resolved KAFKA-2286.

   Resolution: Not A Problem
Fix Version/s: 0.8.1.2

This turns out to be a problem with my configuration.  it was a 
firewall/routing issue, but between zookeeper and the broker on the same 
machine, not between my client and the machine hosting zookeeper and the 
broker.  Zookeeper uses the external IP address it receives from the 
advertised.host.name to connect back to the broker.  So everything worked when 
it was not set---I think it must default to localhost---but it the two couldn't 
communicate when it was connecting to the broker on same machine via its 
external IP.

I fixed this with a route back so that it goes back through NAT to itself.

It's probably a pretty obscure situation, but it might help to have a clearer 
error when the zookeeper can't contact the broker.

 Cannot produce messages remotely: No partition metadata for topic test due to 
 kafka.common.LeaderNotAvailableException
 --

 Key: KAFKA-2286
 URL: https://issues.apache.org/jira/browse/KAFKA-2286
 Project: Kafka
  Issue Type: Bug
  Components: producer 
Affects Versions: 0.8.2.1
 Environment: CentOS 7 /  Oracle jdk1.8.0_45 
Reporter: Mike Bridge
Assignee: Jun Rao
Priority: Critical
 Fix For: 0.8.1.2


 I successfully ran the QuickStart tutorial locally on a single EC2 machine.  
 I stopped everything running on the server, deleted the logs in /tmp, and 
 added the single line advertised.host.name=MY.EXTERNAL.IP to 
 server.properties.  (Port 9092 is indeed allowed through the firewall and 
 responding, so no problem there.)
 I then restarted the server and successfully created a topic as per the 
 QuickStart tutorial. 
 Then, I ran the producer in exactly the same way as in the QuickStart 
 tutorial, except on a remote machine:  
  bin/kafka-console-producer.sh --broker-list MY.EXTERNAL.IP:9092 --topic 
 test
 This generates the following error: 
 
 WARN Error while fetching metadata [{TopicMetadata for topic test123 - 
 No partition metadata for topic test123 due to 
 kafka.common.LeaderNotAvailableException}] for topic [test123]: class 
 kafka.common.LeaderNotAvailableException (kafka.producer.BrokerPartitionInfo)
 See also: 
 http://stackoverflow.com/questions/30880811/kafka-quickstart-advertised-host-name-gives-kafka-common-leadernotavailableexce/30919109#30919109
  
 I've spent several evenings trying to get this simple Kafka setup to work but 
 am stuck. It seems like it should work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (KAFKA-2289) KafkaProducer logs erroneous warning on startu.

2015-06-19 Thread Henning Schmiedehausen (JIRA)
Henning Schmiedehausen created KAFKA-2289:
-

 Summary: KafkaProducer logs erroneous warning on startu.
 Key: KAFKA-2289
 URL: https://issues.apache.org/jira/browse/KAFKA-2289
 Project: Kafka
  Issue Type: Bug
  Components: clients
Affects Versions: 0.8.2.1
Reporter: Henning Schmiedehausen
Priority: Trivial


When creating a new KafkaProducer using the 

KafkaProducer(KafkaConfig, SerializerK, SerializerV) constructor, Kafka 
will list the following lines, which are harmless but are still at WARN level:

WARN  [2015-06-19 23:13:56,557] 
org.apache.kafka.clients.producer.ProducerConfig: The configuration 
value.serializer = class  was supplied but isn't a known config.
WARN  [2015-06-19 23:13:56,557] 
org.apache.kafka.clients.producer.ProducerConfig: The configuration 
key.serializer = class  was supplied but isn't a known config.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-2289) KafkaProducer logs erroneous warning on startup

2015-06-19 Thread Henning Schmiedehausen (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henning Schmiedehausen updated KAFKA-2289:
--
Summary: KafkaProducer logs erroneous warning on startup  (was: 
KafkaProducer logs erroneous warning on startu.)

 KafkaProducer logs erroneous warning on startup
 ---

 Key: KAFKA-2289
 URL: https://issues.apache.org/jira/browse/KAFKA-2289
 Project: Kafka
  Issue Type: Bug
  Components: clients
Affects Versions: 0.8.2.1
Reporter: Henning Schmiedehausen
Priority: Trivial

 When creating a new KafkaProducer using the 
 KafkaProducer(KafkaConfig, SerializerK, SerializerV) constructor, Kafka 
 will list the following lines, which are harmless but are still at WARN level:
 WARN  [2015-06-19 23:13:56,557] 
 org.apache.kafka.clients.producer.ProducerConfig: The configuration 
 value.serializer = class  was supplied but isn't a known config.
 WARN  [2015-06-19 23:13:56,557] 
 org.apache.kafka.clients.producer.ProducerConfig: The configuration 
 key.serializer = class  was supplied but isn't a known config.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (KAFKA-2290) OffsetIndex should open RandomAccessFile consistently

2015-06-19 Thread Jun Rao (JIRA)
Jun Rao created KAFKA-2290:
--

 Summary: OffsetIndex should open RandomAccessFile consistently
 Key: KAFKA-2290
 URL: https://issues.apache.org/jira/browse/KAFKA-2290
 Project: Kafka
  Issue Type: Bug
  Components: core
Reporter: Jun Rao


We open RandomAccessFile in rw mode in the constructor, but in rws mode in 
resize(). We should use rw in both cases since it's more efficient.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Build failed in Jenkins: KafkaPreCommit #127

2015-06-19 Thread Apache Jenkins Server
See https://builds.apache.org/job/KafkaPreCommit/127/changes

Changes:

[junrao] kafka-2234; Partition reassignment of a nonexistent topic prevents 
future reassignments; patched by Manikumar Reddy; reviewed by Jun Rao

[junrao] trivial change to fix unit test failure introduced in kafka-2234

[junrao] kafka-1758; corrupt recovery file prevents startup; patched by 
Manikumar Reddy; reviewed by Neha Narkhede and Jun Rao

[junrao] kafka-1646; Improve consumer read performance for Windows; patched by 
Honghai Chen; reviewed by Jay Kreps and Jun Rao

[junrao] kafka-2012; Broker should automatically handle corrupt index files;  
patched by Manikumar Reddy; reviewed by Jun Rao

--
[...truncated 1383 lines...]
kafka.log.LogConfigTest  testFromPropsEmpty PASSED

kafka.log.LogConfigTest  testFromPropsToProps PASSED

kafka.log.LogConfigTest  testFromPropsInvalid PASSED

kafka.log.OffsetMapTest  testBasicValidation PASSED

kafka.log.OffsetMapTest  testClear PASSED

kafka.log.LogManagerTest  testCreateLog PASSED

kafka.log.LogManagerTest  testGetNonExistentLog PASSED

kafka.log.LogManagerTest  testCleanupExpiredSegments PASSED

kafka.log.LogManagerTest  testCleanupSegmentsToMaintainSize PASSED

kafka.log.LogManagerTest  testTimeBasedFlush PASSED

kafka.log.LogManagerTest  testLeastLoadedAssignment PASSED

kafka.log.LogManagerTest  testTwoLogManagersUsingSameDirFails PASSED

kafka.log.LogManagerTest  testCheckpointRecoveryPoints PASSED

kafka.log.LogManagerTest  testRecoveryDirectoryMappingWithTrailingSlash PASSED

kafka.log.LogManagerTest  testRecoveryDirectoryMappingWithRelativeDirectory 
PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[0] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[1] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[2] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[3] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[4] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[5] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[6] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[7] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[8] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[9] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[10] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[11] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[12] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[13] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[14] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[15] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[16] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[17] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[18] PASSED

kafka.log.BrokerCompressionTest  testBrokerSideCompression[19] PASSED

kafka.log.LogTest  testTimeBasedLogRoll PASSED

kafka.log.LogTest  testTimeBasedLogRollJitter PASSED

kafka.log.LogTest  testSizeBasedLogRoll PASSED

kafka.log.LogTest  testLoadEmptyLog PASSED

kafka.log.LogTest  testAppendAndReadWithSequentialOffsets PASSED

kafka.log.LogTest  testAppendAndReadWithNonSequentialOffsets PASSED

kafka.log.LogTest  testReadAtLogGap PASSED

kafka.log.LogTest  testReadOutOfRange PASSED

kafka.log.LogTest  testLogRolls PASSED

kafka.log.LogTest  testCompressedMessages PASSED

kafka.log.LogTest  testThatGarbageCollectingSegmentsDoesntChangeOffset PASSED

kafka.log.LogTest  testMessageSetSizeCheck PASSED

kafka.log.LogTest  testCompactedTopicConstraints PASSED

kafka.log.LogTest  testMessageSizeCheck PASSED

kafka.log.LogTest  testLogRecoversToCorrectOffset PASSED

kafka.log.LogTest  testIndexRebuild PASSED

kafka.log.LogTest  testCorruptIndexRebuild PASSED

kafka.log.LogTest  testTruncateTo PASSED

kafka.log.LogTest  testIndexResizingAtTruncation PASSED

kafka.log.LogTest  testBogusIndexSegmentsAreRemoved PASSED

kafka.log.LogTest  testReopenThenTruncate PASSED

kafka.log.LogTest  testAsyncDelete PASSED

kafka.log.LogTest  testOpenDeletesObsoleteFiles PASSED

kafka.log.LogTest  testAppendMessageWithNullPayload PASSED

kafka.log.LogTest  testCorruptLog PASSED

kafka.log.LogTest  testCleanShutdownFile PASSED

kafka.log.LogTest  testParseTopicPartitionName PASSED

kafka.log.LogTest  testParseTopicPartitionNameForEmptyName PASSED

kafka.log.LogTest  testParseTopicPartitionNameForNull PASSED

kafka.log.LogTest  testParseTopicPartitionNameForMissingSeparator PASSED

kafka.log.LogTest  testParseTopicPartitionNameForMissingTopic PASSED

kafka.log.LogTest  testParseTopicPartitionNameForMissingPartition PASSED

kafka.log.LogCleanerIntegrationTest  cleanerTest[0] PASSED

kafka.log.LogCleanerIntegrationTest  cleanerTest[1] PASSED

kafka.log.LogCleanerIntegrationTest  cleanerTest[2] 

[jira] [Commented] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Jun Rao (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593953#comment-14593953
 ] 

Jun Rao commented on KAFKA-2012:


I am not sure if it's better to add another config. Perhaps, we can just save 
the corrupted file as Gwen suggested in KAFKA-1554 for trouble shooting.

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Fix For: 0.8.3

 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch, 
 KAFKA-2012_2015-06-19_21:09:22.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2289) KafkaProducer logs erroneous warning on startup

2015-06-19 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14594087#comment-14594087
 ] 

ASF GitHub Bot commented on KAFKA-2289:
---

GitHub user hgschmie opened a pull request:

https://github.com/apache/kafka/pull/71

KAFKA-2289: KafkaProducer logs erroneous warning on startup

This change fixes the problem.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/hgschmie/kafka KAFKA-2289

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/kafka/pull/71.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #71


commit ef6c0961c905d65ff8997a1ba7a09ded617b9837
Author: Henning Schmiedehausen henn...@groupon.com
Date:   2015-06-19T23:17:38Z

KAFKA-2289: KafkaProducer logs erroneous warning on startup

This change fixes the problem.




 KafkaProducer logs erroneous warning on startup
 ---

 Key: KAFKA-2289
 URL: https://issues.apache.org/jira/browse/KAFKA-2289
 Project: Kafka
  Issue Type: Bug
  Components: clients
Affects Versions: 0.8.2.1
Reporter: Henning Schmiedehausen
Priority: Trivial

 When creating a new KafkaProducer using the 
 KafkaProducer(KafkaConfig, SerializerK, SerializerV) constructor, Kafka 
 will list the following lines, which are harmless but are still at WARN level:
 WARN  [2015-06-19 23:13:56,557] 
 org.apache.kafka.clients.producer.ProducerConfig: The configuration 
 value.serializer = class  was supplied but isn't a known config.
 WARN  [2015-06-19 23:13:56,557] 
 org.apache.kafka.clients.producer.ProducerConfig: The configuration 
 key.serializer = class  was supplied but isn't a known config.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2289) KafkaProducer logs erroneous warning on startup

2015-06-19 Thread Henning Schmiedehausen (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14594089#comment-14594089
 ] 

Henning Schmiedehausen commented on KAFKA-2289:
---

Pull request with a fix is at https://github.com/apache/kafka/pull/71

 KafkaProducer logs erroneous warning on startup
 ---

 Key: KAFKA-2289
 URL: https://issues.apache.org/jira/browse/KAFKA-2289
 Project: Kafka
  Issue Type: Bug
  Components: clients
Affects Versions: 0.8.2.1
Reporter: Henning Schmiedehausen
Priority: Trivial

 When creating a new KafkaProducer using the 
 KafkaProducer(KafkaConfig, SerializerK, SerializerV) constructor, Kafka 
 will list the following lines, which are harmless but are still at WARN level:
 WARN  [2015-06-19 23:13:56,557] 
 org.apache.kafka.clients.producer.ProducerConfig: The configuration 
 value.serializer = class  was supplied but isn't a known config.
 WARN  [2015-06-19 23:13:56,557] 
 org.apache.kafka.clients.producer.ProducerConfig: The configuration 
 key.serializer = class  was supplied but isn't a known config.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: [DISCUSS] KIP-26 - Add Copycat, a connector framework for data import/export

2015-06-19 Thread Roshan Naik
My initial thoughts:

Although it is kind of discussed very broadly, I did struggle a bit to properly 
grasp the value add this adds over the alternative approaches that are 
available today (or need a little work to accomplish) in specific use cases. I 
feel its better to take  specific common use cases and show why this will do 
better to make it clear. For example data flow starting from a pool of web 
server and finally end up in HDFS or Hive while providing At-least one 
guarantees.

Below are more specific points that occurred to me:

- Import: Today we can create data flows to pick up data from a variety of 
source and push data into Kafka using Flume. Not clear how this system can do 
better in this specific case.
- Export: For pulling data out of Kakfa there is Camus (which limits 
destination to HDFS), Flume (which can deliver to many places) and also Sqoop 
(which could be extended to support Kafka). Camus and Sqoop don't have the 
problem of requires defining many tasks issue for parallelism.
- YARN support – Letting YARN manage things  is actually good thing (not a bad 
thing as indicated), since its easier for the scaling in/out as needed and not 
worry too much about hardware allocation.
- Exactly-Once:  It is clear that on the import side you won't support that for 
now. Not clear how you will support that on export side for destination like 
HDFS or some other. Exactly once only make sense when we can have that 
guarantee on the entire data flow (not just portions of the flow).
- Connector Variety: Flume and Sqoop already have out of the box- support for 
multiple destinations and sources.


-roshan



On 6/19/15 2:47 PM, Jay Kreps j...@confluent.iomailto:j...@confluent.io 
wrote:

I think we want the connectors to be federated just because trying to
maintain all the connectors centrally would be really painful. I think if
we really do this well we would want to have 100 of these connectors so it
really won't make sense to maintain them with the project. I think the
thought was just to include the framework and maybe one simple connector as
an example.

Thoughts?

-Jay

On Fri, Jun 19, 2015 at 2:38 PM, Gwen Shapira 
gshap...@cloudera.commailto:gshap...@cloudera.com wrote:

I think BikeShed will be a great name.

Can you clarify the scope? The KIP discusses a framework and also few
examples for connectors. Does the addition include just the framework
(and perhaps an example or two), or do we plan to start accepting
connectors to Apache Kafka project?

Gwen

On Thu, Jun 18, 2015 at 3:09 PM, Jay Kreps 
j...@confluent.iomailto:j...@confluent.io wrote:
 I think the only problem we came up with was that Kafka KopyKat
abbreviates
 as KKK which is not ideal in the US. Copykat would still be googlable
 without that issue. :-)

 -Jay

 On Thu, Jun 18, 2015 at 1:20 PM, Otis Gospodnetic 
 otis.gospodne...@gmail.commailto:otis.gospodne...@gmail.com wrote:

 Just a comment on the name. KopyKat? More unique, easy to write,
 pronounce, remember...

 Otis



  On Jun 18, 2015, at 13:36, Jay Kreps 
  j...@confluent.iomailto:j...@confluent.io wrote:
 
  1. We were calling the plugins connectors (which is kind of a generic
way
  to say either source or sink) and the framework copycat. The pro of
 copycat
  is it is kind of fun. The con is that it doesn't really say what it
does.
  The Kafka Connector Framework would be a duller but more intuitive
name,
  but I suspect people would then just shorten it to KCF which again
has no
  intuitive meaning.
 
  2. Potentially. One alternative we had thought of wrt the consumer
was to
  have the protocol just handle the group management part and have the
  partition assignment be purely driven by the client. At the time
copycat
  wasn't even a twinkle in our eyes so we weren't really thinking about
 that.
  There were pros and cons to this and we decided it was better to do
  partition assignment on the broker side. We could revisit this, it
might
  not be a massive change in the consumer, but it would definitely add
work
  there. I do agree that if we have learned one thing it is to keep
clients
  away from zk. This zk usage is more limited though, in that there is
no
  intention of having copycat in different languages as the clients are.
 
  4. I think the idea is to include the structural schema information
you
  have available so it can be taken advantage of. Obviously the easiest
  approach would just be to have a static schema for the messages like
  timestamp + string/byte[]. However this means that i the source has
 schema
  information there is no real official way to propagate that. Having a
 real
  built-in schema mechanism gives you a little more power to make the
data
  usable. So if you were publishing apache logs the low-touch generic
way
  would just be to have the schema be string since that is what apache
 log
  entries are. However if you had the actual format string used for the
log
  you could use that to have a richer schema and parse out the

Review Request 35677: Patch for KAFKA-2288

2015-06-19 Thread Gwen Shapira

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35677/
---

Review request for kafka.


Bugs: KAFKA-2288
https://issues.apache.org/jira/browse/KAFKA-2288


Repository: kafka


Description
---

minor corrections to LogConfig and KafkaConfigTest


Diffs
-

  clients/src/main/java/org/apache/kafka/common/config/AbstractConfig.java 
bae528d31516679bed88ee61b408f209f185a8cc 
  core/src/main/scala/kafka/log/LogConfig.scala 
fc41132d2bf29439225ec581829eb479f98cc416 
  core/src/main/scala/kafka/server/KafkaServer.scala 
52dc728bb1ab4b05e94dc528da1006040e2f28c9 
  core/src/test/scala/unit/kafka/log/LogConfigTest.scala 
19dcb47f3f406b8d6c3668297450ab6b534e4471 
  core/src/test/scala/unit/kafka/server/KafkaConfigConfigDefTest.scala 
98a5b042a710d3c1064b0379db1d152efc9eabee 
  core/src/test/scala/unit/kafka/server/KafkaConfigTest.scala 
2428dbd7197a58cf4cad42ef82b385dab3a2b15e 

Diff: https://reviews.apache.org/r/35677/diff/


Testing
---


Thanks,

Gwen Shapira



[jira] [Commented] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Manikumar Reddy (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14594420#comment-14594420
 ] 

Manikumar Reddy commented on KAFKA-2012:


I am not sure if we can find out the reason after file corruption. i,e  What we 
can infer from a corrupted file? 
instead we should  add some defensive code/logs before and after index 
reads/writes. looks like KAFKA-1554 got some steps to reproduce the issue.

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Fix For: 0.8.3

 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch, 
 KAFKA-2012_2015-06-19_21:09:22.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-2245) Add response tests for ConsumerCoordinator

2015-06-19 Thread Onur Karaman (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Onur Karaman updated KAFKA-2245:

Attachment: KAFKA-2245_2015-06-19_22:55:56.patch

 Add response tests for ConsumerCoordinator
 --

 Key: KAFKA-2245
 URL: https://issues.apache.org/jira/browse/KAFKA-2245
 Project: Kafka
  Issue Type: Sub-task
  Components: consumer
Reporter: Onur Karaman
Assignee: Onur Karaman
Priority: Critical
 Fix For: 0.8.3

 Attachments: KAFKA-2245.patch, KAFKA-2245_2015-06-19_22:55:56.patch


 We can validate error codes from JoinGroupResponses and HeartbeatResponses. 
 Currently this includes:
 - JoinGroupRequest to the wrong coordinator returns 
 NOT_COORDINATOR_FOR_CONSUMER
 - JoinGroupRequest with an unknown partition assignment strategy returns 
 UNKNOWN_PARTITION_ASSIGNMENT_STRATEGY
 - JoinGroupRequest with an out-of-range session timeout returns 
 INVALID_SESSION_TIMEOUT
 - JoinGroupRequest on a brand new group with an unrecognized consumer id 
 produces UNKNOWN_CONSUMER_ID
 - JoinGroupRequest with mismatched partition assignment strategy compared to 
 the rest of the group returns INCONSISTENT_PARTITION_ASSIGNMENT_STRATEGY
 - JoinGroupRequest on an existing group with an unrecognized consumer id 
 produces UNKNOWN_CONSUMER_ID
 - A correct JoinGroupRequest returns NONE
 - HeartbeatRequest to the wrong coordinator returns 
 NOT_COORDINATOR_FOR_CONSUMER
 - HeartbeatRequest with an unknown group returns UNKNOWN_CONSUMER_ID
 - HeartbeatRequest with an unrecognized consumer id returns 
 UNKNOWN_CONSUMER_ID
 - HeartbeatRequest with generation id mismatch returns ILLEGAL_GENERATION
 - A correct HeartbeatRequest returns NONE
 We can validate the generation id increments on rebalance based on the 
 JoinGroupResponse.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2245) Add response tests for ConsumerCoordinator

2015-06-19 Thread Onur Karaman (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14594421#comment-14594421
 ] 

Onur Karaman commented on KAFKA-2245:
-

Updated reviewboard https://reviews.apache.org/r/35086/diff/
 against branch origin/trunk

 Add response tests for ConsumerCoordinator
 --

 Key: KAFKA-2245
 URL: https://issues.apache.org/jira/browse/KAFKA-2245
 Project: Kafka
  Issue Type: Sub-task
  Components: consumer
Reporter: Onur Karaman
Assignee: Onur Karaman
Priority: Critical
 Fix For: 0.8.3

 Attachments: KAFKA-2245.patch, KAFKA-2245_2015-06-19_22:55:56.patch


 We can validate error codes from JoinGroupResponses and HeartbeatResponses. 
 Currently this includes:
 - JoinGroupRequest to the wrong coordinator returns 
 NOT_COORDINATOR_FOR_CONSUMER
 - JoinGroupRequest with an unknown partition assignment strategy returns 
 UNKNOWN_PARTITION_ASSIGNMENT_STRATEGY
 - JoinGroupRequest with an out-of-range session timeout returns 
 INVALID_SESSION_TIMEOUT
 - JoinGroupRequest on a brand new group with an unrecognized consumer id 
 produces UNKNOWN_CONSUMER_ID
 - JoinGroupRequest with mismatched partition assignment strategy compared to 
 the rest of the group returns INCONSISTENT_PARTITION_ASSIGNMENT_STRATEGY
 - JoinGroupRequest on an existing group with an unrecognized consumer id 
 produces UNKNOWN_CONSUMER_ID
 - A correct JoinGroupRequest returns NONE
 - HeartbeatRequest to the wrong coordinator returns 
 NOT_COORDINATOR_FOR_CONSUMER
 - HeartbeatRequest with an unknown group returns UNKNOWN_CONSUMER_ID
 - HeartbeatRequest with an unrecognized consumer id returns 
 UNKNOWN_CONSUMER_ID
 - HeartbeatRequest with generation id mismatch returns ILLEGAL_GENERATION
 - A correct HeartbeatRequest returns NONE
 We can validate the generation id increments on rebalance based on the 
 JoinGroupResponse.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: Review Request 35086: add response tests for ConsumerCoordinator

2015-06-19 Thread Onur Karaman

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35086/
---

(Updated June 20, 2015, 5:56 a.m.)


Review request for kafka.


Bugs: KAFKA-2245
https://issues.apache.org/jira/browse/KAFKA-2245


Repository: kafka


Description (updated)
---

coordinator response test


Diffs (updated)
-

  core/src/main/scala/kafka/coordinator/ConsumerCoordinator.scala 
51e89c87ee2c20fc7f976536f01fa1055fb8e670 
  core/src/main/scala/kafka/coordinator/CoordinatorMetadata.scala 
c39e6de34ee531c6dfa9107b830752bd7f8fbe59 
  
core/src/test/scala/unit/kafka/coordinator/ConsumerCoordinatorResponseTest.scala
 PRE-CREATION 

Diff: https://reviews.apache.org/r/35086/diff/


Testing
---


Thanks,

Onur Karaman



[jira] [Updated] (KAFKA-2288) Follow-up to KAFKA-2249 - reduce logging and testing

2015-06-19 Thread Gwen Shapira (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gwen Shapira updated KAFKA-2288:

Attachment: KAFKA-2288.patch

 Follow-up to KAFKA-2249 - reduce logging and testing
 

 Key: KAFKA-2288
 URL: https://issues.apache.org/jira/browse/KAFKA-2288
 Project: Kafka
  Issue Type: Bug
Reporter: Gwen Shapira
Assignee: Gwen Shapira
 Attachments: KAFKA-2288.patch


 As [~junrao] commented on KAFKA-2249, we have a needless test and we are 
 logging configuration for every single partition now. 
 Lets reduce the noise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-2288) Follow-up to KAFKA-2249 - reduce logging and testing

2015-06-19 Thread Gwen Shapira (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gwen Shapira updated KAFKA-2288:

Status: Patch Available  (was: Open)

 Follow-up to KAFKA-2249 - reduce logging and testing
 

 Key: KAFKA-2288
 URL: https://issues.apache.org/jira/browse/KAFKA-2288
 Project: Kafka
  Issue Type: Bug
Reporter: Gwen Shapira
Assignee: Gwen Shapira
 Attachments: KAFKA-2288.patch


 As [~junrao] commented on KAFKA-2249, we have a needless test and we are 
 logging configuration for every single partition now. 
 Lets reduce the noise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2288) Follow-up to KAFKA-2249 - reduce logging and testing

2015-06-19 Thread Gwen Shapira (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14594222#comment-14594222
 ] 

Gwen Shapira commented on KAFKA-2288:
-

Created reviewboard https://reviews.apache.org/r/35677/diff/
 against branch trunk

 Follow-up to KAFKA-2249 - reduce logging and testing
 

 Key: KAFKA-2288
 URL: https://issues.apache.org/jira/browse/KAFKA-2288
 Project: Kafka
  Issue Type: Bug
Reporter: Gwen Shapira
Assignee: Gwen Shapira
 Attachments: KAFKA-2288.patch


 As [~junrao] commented on KAFKA-2249, we have a needless test and we are 
 logging configuration for every single partition now. 
 Lets reduce the noise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-1646) Improve consumer read performance for Windows

2015-06-19 Thread Honghai Chen (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Honghai Chen updated KAFKA-1646:

Attachment: (was: KAFKA-1646_20150618_225612.patch)

 Improve consumer read performance for Windows
 -

 Key: KAFKA-1646
 URL: https://issues.apache.org/jira/browse/KAFKA-1646
 Project: Kafka
  Issue Type: Improvement
  Components: log
Affects Versions: 0.8.1.1
 Environment: Windows
Reporter: xueqiang wang
Assignee: xueqiang wang
  Labels: newbie, patch
 Attachments: Improve consumer read performance for Windows.patch, 
 KAFKA-1646-truncate-off-trailing-zeros-on-broker-restart-if-bro.patch, 
 KAFKA-1646_20141216_163008.patch, KAFKA-1646_20150306_005526.patch, 
 KAFKA-1646_20150511_AddTestcases.patch, 
 KAFKA-1646_20150609_MergeToLatestTrunk.patch, 
 KAFKA-1646_20150616_FixFormat.patch, KAFKA-1646_20150618_235231.patch


 This patch is for Window platform only. In Windows platform, if there are 
 more than one replicas writing to disk, the segment log files will not be 
 consistent in disk and then consumer reading performance will be dropped down 
 greatly. This fix allocates more disk spaces when rolling a new segment, and 
 then it will improve the consumer reading performance in NTFS file system.
 This patch doesn't affect file allocation of other filesystems, for it only 
 adds statements like 'if(Os.iswindow)' or adds methods used on Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (KAFKA-1465) kafka-reassign-partitions.sh fails when topic name contains dash/hyphen

2015-06-19 Thread Manikumar Reddy (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-1465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manikumar Reddy resolved KAFKA-1465.

   Resolution: Fixed
Fix Version/s: 0.8.3

Not able to reproduce this issue on trunk. Might have fixed in previous 
commits. So closing this issue. 

 kafka-reassign-partitions.sh fails when topic name contains dash/hyphen
 ---

 Key: KAFKA-1465
 URL: https://issues.apache.org/jira/browse/KAFKA-1465
 Project: Kafka
  Issue Type: Bug
  Components: tools
Affects Versions: 0.8.0
Reporter: Adrian Muraru
 Fix For: 0.8.3


 {{./bin/kafka-reassign-partitions.sh --topics-to-move-json-file 
 ~/rebalance-topic.json --broker-list 18,19 --zookeeper $ZK_QUORUM 
 --execute}}
 {code}
 Partitions reassignment failed due to Can't parse json string: null
 kafka.common.KafkaException: Can't parse json string: null
   at kafka.utils.Json$.liftedTree1$1(Json.scala:36)
   at kafka.utils.Json$.parseFull(Json.scala:32)
   at 
 kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:529)
   at 
 kafka.utils.ZkUtils$$anonfun$getReplicaAssignmentForTopics$1.apply(ZkUtils.scala:525)
   at 
 scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
   at scala.collection.immutable.List.foreach(List.scala:45)
   at kafka.utils.ZkUtils$.getReplicaAssignmentForTopics(ZkUtils.scala:525)
   at 
 kafka.admin.ReassignPartitionsCommand$.main(ReassignPartitionsCommand.scala:112)
   at 
 kafka.admin.ReassignPartitionsCommand.main(ReassignPartitionsCommand.scala)
 Caused by: java.lang.NullPointerException
   at 
 scala.util.parsing.combinator.lexical.Scanners$Scanner.init(Scanners.scala:52)
   at scala.util.parsing.json.JSON$.parseRaw(JSON.scala:71)
   at scala.util.parsing.json.JSON$.parseFull(JSON.scala:85)
   at kafka.utils.Json$.liftedTree1$1(Json.scala:33)
   ... 8 more
 {code}
 *rebalance-topic.json*
 {code}
 {topics:
  [{topic: metrics-logs}],
  version:1
 }
 {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-1646) Improve consumer read performance for Windows

2015-06-19 Thread Honghai Chen (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Honghai Chen updated KAFKA-1646:

Attachment: KAFKA-1646_20150618_235231.patch

 Improve consumer read performance for Windows
 -

 Key: KAFKA-1646
 URL: https://issues.apache.org/jira/browse/KAFKA-1646
 Project: Kafka
  Issue Type: Improvement
  Components: log
Affects Versions: 0.8.1.1
 Environment: Windows
Reporter: xueqiang wang
Assignee: xueqiang wang
  Labels: newbie, patch
 Attachments: Improve consumer read performance for Windows.patch, 
 KAFKA-1646-truncate-off-trailing-zeros-on-broker-restart-if-bro.patch, 
 KAFKA-1646_20141216_163008.patch, KAFKA-1646_20150306_005526.patch, 
 KAFKA-1646_20150511_AddTestcases.patch, 
 KAFKA-1646_20150609_MergeToLatestTrunk.patch, 
 KAFKA-1646_20150616_FixFormat.patch, KAFKA-1646_20150618_225612.patch, 
 KAFKA-1646_20150618_235231.patch


 This patch is for Window platform only. In Windows platform, if there are 
 more than one replicas writing to disk, the segment log files will not be 
 consistent in disk and then consumer reading performance will be dropped down 
 greatly. This fix allocates more disk spaces when rolling a new segment, and 
 then it will improve the consumer reading performance in NTFS file system.
 This patch doesn't affect file allocation of other filesystems, for it only 
 adds statements like 'if(Os.iswindow)' or adds methods used on Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-1646) Improve consumer read performance for Windows

2015-06-19 Thread Honghai Chen (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593116#comment-14593116
 ] 

Honghai Chen commented on KAFKA-1646:
-

Updated reviewboard https://reviews.apache.org/r/33204/diff/
 against branch origin/trunk

 Improve consumer read performance for Windows
 -

 Key: KAFKA-1646
 URL: https://issues.apache.org/jira/browse/KAFKA-1646
 Project: Kafka
  Issue Type: Improvement
  Components: log
Affects Versions: 0.8.1.1
 Environment: Windows
Reporter: xueqiang wang
Assignee: xueqiang wang
  Labels: newbie, patch
 Attachments: Improve consumer read performance for Windows.patch, 
 KAFKA-1646-truncate-off-trailing-zeros-on-broker-restart-if-bro.patch, 
 KAFKA-1646_20141216_163008.patch, KAFKA-1646_20150306_005526.patch, 
 KAFKA-1646_20150511_AddTestcases.patch, 
 KAFKA-1646_20150609_MergeToLatestTrunk.patch, 
 KAFKA-1646_20150616_FixFormat.patch, KAFKA-1646_20150618_225612.patch, 
 KAFKA-1646_20150618_235231.patch


 This patch is for Window platform only. In Windows platform, if there are 
 more than one replicas writing to disk, the segment log files will not be 
 consistent in disk and then consumer reading performance will be dropped down 
 greatly. This fix allocates more disk spaces when rolling a new segment, and 
 then it will improve the consumer reading performance in NTFS file system.
 This patch doesn't affect file allocation of other filesystems, for it only 
 adds statements like 'if(Os.iswindow)' or adds methods used on Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Manikumar Reddy (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manikumar Reddy updated KAFKA-2012:
---
Status: Patch Available  (was: In Progress)

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Manikumar Reddy (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manikumar Reddy updated KAFKA-2012:
---
Attachment: KAFKA-2012_2015-06-19_18:55:11.patch

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: Review Request 35503: Patch for KAFKA-2012

2015-06-19 Thread Manikumar Reddy O


 On June 19, 2015, 12:11 a.m., Jun Rao wrote:
  core/src/main/scala/kafka/log/Log.scala, lines 225-227
  https://reviews.apache.org/r/35503/diff/1/?file=985641#file985641line225
 
  Do we still need this now that we have verified the index consistency 
  earlier?

Yes, we can remove these statements


 On June 19, 2015, 12:11 a.m., Jun Rao wrote:
  core/src/main/scala/kafka/log/Log.scala, line 178
  https://reviews.apache.org/r/35503/diff/1/?file=985641#file985641line178
 
  Is this correct? The mmapping of the index file happens in the 
  initialization of OffsetIndex. It seems that we need to re-create the 
  LogSegment after the index file is deleted.

index file gets recreated in OffsetIndex.mmap() method (val newlyCreated = 
file.createNewFile()).
So we no need to re-create the LogSegment. Pl check.


- Manikumar Reddy


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35503/#review88470
---


On June 19, 2015, 1:27 p.m., Manikumar Reddy O wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/35503/
 ---
 
 (Updated June 19, 2015, 1:27 p.m.)
 
 
 Review request for kafka.
 
 
 Bugs: KAFKA-2012
 https://issues.apache.org/jira/browse/KAFKA-2012
 
 
 Repository: kafka
 
 
 Description
 ---
 
 Address Jun's comments
 
 
 Diffs
 -
 
   core/src/main/scala/kafka/log/Log.scala 
 84e7b8fe9dd014884b60c4fbe13c835cf02a40e4 
   core/src/test/scala/unit/kafka/log/LogTest.scala 
 a8e57c2348e694a1e0d5407ae8ae105fb1f1bf59 
 
 Diff: https://reviews.apache.org/r/35503/diff/
 
 
 Testing
 ---
 
 
 Thanks,
 
 Manikumar Reddy O
 




[jira] [Commented] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Manikumar Reddy (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593418#comment-14593418
 ] 

Manikumar Reddy commented on KAFKA-2012:


Updated reviewboard https://reviews.apache.org/r/35503/diff/
 against branch origin/trunk

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: Review Request 35503: Patch for KAFKA-2012

2015-06-19 Thread Manikumar Reddy O

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35503/
---

(Updated June 19, 2015, 1:27 p.m.)


Review request for kafka.


Bugs: KAFKA-2012
https://issues.apache.org/jira/browse/KAFKA-2012


Repository: kafka


Description (updated)
---

Address Jun's comments


Diffs (updated)
-

  core/src/main/scala/kafka/log/Log.scala 
84e7b8fe9dd014884b60c4fbe13c835cf02a40e4 
  core/src/test/scala/unit/kafka/log/LogTest.scala 
a8e57c2348e694a1e0d5407ae8ae105fb1f1bf59 

Diff: https://reviews.apache.org/r/35503/diff/


Testing
---


Thanks,

Manikumar Reddy O



[jira] [Resolved] (KAFKA-1656) replica-assignment option in bin/kakfa-topics.sh doesn't work with alter

2015-06-19 Thread Manikumar Reddy (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manikumar Reddy resolved KAFKA-1656.

Resolution: Duplicate

This got fixed in KAFKA-1947

 replica-assignment option  in bin/kakfa-topics.sh doesn't work with 
 alter
 ---

 Key: KAFKA-1656
 URL: https://issues.apache.org/jira/browse/KAFKA-1656
 Project: Kafka
  Issue Type: Improvement
  Components: tools
Affects Versions: 0.8.1.1
 Environment: all
Reporter: jayden sun
Priority: Minor
  Labels: newbie

 replica-assignment option  in bin/kakfa-topics.sh works only with 
 --create and doesn't work with --alter, but the config comment is 
 somewhat confusing. 
 For example:
 bin/kafka-topics.sh --create --zookeeper 10.0.44.137:2181 
 --replica-assignment 1:2,1:2 --partitions 2 --topic topic
 i use the command above to create a topic with two partitions on broker 1 and 
 2.
 and then i want to change partition count from two to four, and the newly 
 created partition on broker 3 and 4.
 So i try the command:
 bin/kafka-topics.sh --alter --zookeeper 10.0.44.137:2181 --replica-assignment 
 3:4,3:4 --partitions 4 --topic topic
 But it does not works!!! replica-assignment can't be used with partitions.
 What i can do is to add partitions like this:
 bin/kafka-topics.sh --alter --zookeeper 10.0.44.137:2181 --partitions 4 
 --topic topic
 and then use the partition reassignment command to change the brokers for 
 newly partitions  to 3 and 4.
 So,i think or altered in the comment for --replica-assignment should be 
 removed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (KAFKA-1646) Improve consumer read performance for Windows

2015-06-19 Thread Honghai Chen (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593116#comment-14593116
 ] 

Honghai Chen edited comment on KAFKA-1646 at 6/19/15 6:57 AM:
--

Updated reviewboard https://reviews.apache.org/r/33204/diff/
 against branch origin/trunk

The latest code review :https://reviews.apache.org/r/33204/diff/8/
1, fix 2 test cases.
2, fix logCleaner.Whenever create one new file, should set the preallocate 
parameter.
3, merge to latest trunk.

Is it ok to go?  [~junrao]

Try push some code to open source even harder than play China Shanghai Stock A, 
hehe.




was (Author: waldenchen):
Updated reviewboard https://reviews.apache.org/r/33204/diff/
 against branch origin/trunk

 Improve consumer read performance for Windows
 -

 Key: KAFKA-1646
 URL: https://issues.apache.org/jira/browse/KAFKA-1646
 Project: Kafka
  Issue Type: Improvement
  Components: log
Affects Versions: 0.8.1.1
 Environment: Windows
Reporter: xueqiang wang
Assignee: xueqiang wang
  Labels: newbie, patch
 Attachments: Improve consumer read performance for Windows.patch, 
 KAFKA-1646-truncate-off-trailing-zeros-on-broker-restart-if-bro.patch, 
 KAFKA-1646_20141216_163008.patch, KAFKA-1646_20150306_005526.patch, 
 KAFKA-1646_20150511_AddTestcases.patch, 
 KAFKA-1646_20150609_MergeToLatestTrunk.patch, 
 KAFKA-1646_20150616_FixFormat.patch, KAFKA-1646_20150618_235231.patch


 This patch is for Window platform only. In Windows platform, if there are 
 more than one replicas writing to disk, the segment log files will not be 
 consistent in disk and then consumer reading performance will be dropped down 
 greatly. This fix allocates more disk spaces when rolling a new segment, and 
 then it will improve the consumer reading performance in NTFS file system.
 This patch doesn't affect file allocation of other filesystems, for it only 
 adds statements like 'if(Os.iswindow)' or adds methods used on Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2283) scheduler exception on non-controller node when shutdown

2015-06-19 Thread Manikumar Reddy (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593154#comment-14593154
 ] 

Manikumar Reddy commented on KAFKA-2283:


looks like this got fixed in trunk  build.

 scheduler exception on non-controller node when shutdown
 

 Key: KAFKA-2283
 URL: https://issues.apache.org/jira/browse/KAFKA-2283
 Project: Kafka
  Issue Type: Bug
  Components: controller
Affects Versions: 0.8.2.1
 Environment: linux debian
Reporter: allenlee
Assignee: Neha Narkhede
Priority: Minor

 When broker shutdown, there is an error log about 'Kafka scheduler has not 
 been started'.
 It only appears on non-controller node. If this broker is the controller, it 
 shutdown without warning log.
 IMHO, *autoRebalanceScheduler.shutdown()* should only valid for controller, 
 right?
 {quote}
 [2015-06-17 22:32:51,814] INFO Shutdown complete. (kafka.log.LogManager)
 [2015-06-17 22:32:51,815] WARN Kafka scheduler has not been started 
 (kafka.utils.Utils$)
 java.lang.IllegalStateException: Kafka scheduler has not been started
 at kafka.utils.KafkaScheduler.ensureStarted(KafkaScheduler.scala:114)
 at kafka.utils.KafkaScheduler.shutdown(KafkaScheduler.scala:86)
 at 
 kafka.controller.KafkaController.onControllerResignation(KafkaController.scala:350)
 at 
 kafka.controller.KafkaController.shutdown(KafkaController.scala:664)
 at 
 kafka.server.KafkaServer$$anonfun$shutdown$8.apply$mcV$sp(KafkaServer.scala:285)
 at kafka.utils.Utils$.swallow(Utils.scala:172)
 at kafka.utils.Logging$class.swallowWarn(Logging.scala:92)
 at kafka.utils.Utils$.swallowWarn(Utils.scala:45)
 at kafka.utils.Logging$class.swallow(Logging.scala:94)
 at kafka.utils.Utils$.swallow(Utils.scala:45)
 at kafka.server.KafkaServer.shutdown(KafkaServer.scala:285)
 at 
 kafka.server.KafkaServerStartable.shutdown(KafkaServerStartable.scala:42)
 at kafka.Kafka$$anon$1.run(Kafka.scala:42)
 [2015-06-17 22:32:51,818] INFO Terminate ZkClient event thread. 
 (org.I0Itec.zkclient.ZkEventThread)
 {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Jun Rao (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593496#comment-14593496
 ] 

Jun Rao commented on KAFKA-2012:


The latest patch looks good to me. Could you rebase since we just committed 
KAFKA-1646? Thanks,

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2249) KafkaConfig does not preserve original Properties

2015-06-19 Thread Jun Rao (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593469#comment-14593469
 ] 

Jun Rao commented on KAFKA-2249:


Also, I am not sure if LogConfigTest.testFromPropsToProps() is still useful 
after the patch.

 KafkaConfig does not preserve original Properties
 -

 Key: KAFKA-2249
 URL: https://issues.apache.org/jira/browse/KAFKA-2249
 Project: Kafka
  Issue Type: Bug
Reporter: Gwen Shapira
Assignee: Gwen Shapira
 Fix For: 0.8.3

 Attachments: KAFKA-2249.patch, KAFKA-2249_2015-06-17_17:35:35.patch


 We typically generate configuration from properties objects (or maps).
 The old KafkaConfig, and the new ProducerConfig and ConsumerConfig all retain 
 the original Properties object, which means that if the user specified 
 properties that are not part of ConfigDef definitions, they are still 
 accessible.
 This is important especially for MetricReporters where we want to allow users 
 to pass arbitrary properties for the reporter.
 One way to support this is by having KafkaConfig implement AbstractConfig, 
 which will give us other nice functionality too.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Manikumar Reddy (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593535#comment-14593535
 ] 

Manikumar Reddy commented on KAFKA-2012:


Updated reviewboard https://reviews.apache.org/r/35503/diff/
 against branch origin/trunk

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch, 
 KAFKA-2012_2015-06-19_21:09:22.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Manikumar Reddy (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Manikumar Reddy updated KAFKA-2012:
---
Attachment: KAFKA-2012_2015-06-19_21:09:22.patch

 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch, 
 KAFKA-2012_2015-06-19_21:09:22.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-1451) Broker stuck due to leader election race

2015-06-19 Thread Raghav (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-1451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593515#comment-14593515
 ] 

Raghav commented on KAFKA-1451:
---

Hit this issue on version 0.8.2.1 when twiiterstream generate the large data i 
have one topic with two broker and two partition


[2015-06-19 20:35:10,141] INFO I wrote this conflicted ephemeral node 
[{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}]
 at /brokers/ids/2 a while back in a different session, hence I will backoff 
for this node to be deleted by Zookeeper and retry (kafka.utils.ZkUtils$)
[2015-06-19 20:35:16,246] INFO conflict in /brokers/ids/2 data: 
{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}
 stored data: 
{jmx_port:1,timestamp:1434726044184,host:localhost.localdomain,version:1,port:9093}
 (kafka.utils.ZkUtils$)
[2015-06-19 20:35:16,796] INFO I wrote this conflicted ephemeral node 
[{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}]
 at /brokers/ids/2 a while back in a different session, hence I will backoff 
for this node to be deleted by Zookeeper and retry (kafka.utils.ZkUtils$)
[2015-06-19 20:35:22,965] INFO conflict in /brokers/ids/2 data: 
{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}
 stored data: 
{jmx_port:1,timestamp:1434726044184,host:localhost.localdomain,version:1,port:9093}
 (kafka.utils.ZkUtils$)
[2015-06-19 20:35:22,967] INFO I wrote this conflicted ephemeral node 
[{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}]
 at /brokers/ids/2 a while back in a different session, hence I will backoff 
for this node to be deleted by Zookeeper and retry (kafka.utils.ZkUtils$)
[2015-06-19 20:35:29,159] INFO conflict in /brokers/ids/2 data: 
{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}
 stored data: 
{jmx_port:1,timestamp:1434726044184,host:localhost.localdomain,version:1,port:9093}
 (kafka.utils.ZkUtils$)
[2015-06-19 20:35:29,161] INFO I wrote this conflicted ephemeral node 
[{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}]
 at /brokers/ids/2 a while back in a different session, hence I will backoff 
for this node to be deleted by Zookeeper and retry (kafka.utils.ZkUtils$)
[2015-06-19 20:35:35,219] INFO conflict in /brokers/ids/2 data: 
{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}
 stored data: 
{jmx_port:1,timestamp:1434726044184,host:localhost.localdomain,version:1,port:9093}
 (kafka.utils.ZkUtils$)
[2015-06-19 20:35:35,221] INFO I wrote this conflicted ephemeral node 
[{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}]
 at /brokers/ids/2 a while back in a different session, hence I will backoff 
for this node to be deleted by Zookeeper and retry (kafka.utils.ZkUtils$)
[2015-06-19 20:35:41,338] INFO conflict in /brokers/ids/2 data: 
{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}
 stored data: 
{jmx_port:1,timestamp:1434726044184,host:localhost.localdomain,version:1,port:9093}
 (kafka.utils.ZkUtils$)
[2015-06-19 20:35:42,208] INFO I wrote this conflicted ephemeral node 
[{jmx_port:1,timestamp:1434726183806,host:localhost.localdomain,version:1,port:9093}]
 at /brokers/ids/2 a while back in a different session, hence I will backoff 
for this node to be deleted by Zookeeper and retry (kafka.utils.ZkUtils$)


 Broker stuck due to leader election race 
 -

 Key: KAFKA-1451
 URL: https://issues.apache.org/jira/browse/KAFKA-1451
 Project: Kafka
  Issue Type: Bug
  Components: core
Affects Versions: 0.8.1.1
Reporter: Maciek Makowski
Assignee: Manikumar Reddy
Priority: Minor
  Labels: newbie
 Fix For: 0.8.2.0

 Attachments: KAFKA-1451.patch, KAFKA-1451_2014-07-28_20:27:32.patch, 
 KAFKA-1451_2014-07-29_10:13:23.patch


 h3. Symptoms
 The broker does not become available due to being stuck in an infinite loop 
 while electing leader. This can be recognised by the following line being 
 repeatedly written to server.log:
 {code}
 [2014-05-14 04:35:09,187] INFO I wrote this conflicted ephemeral node 
 [{version:1,brokerid:1,timestamp:1400060079108}] at /controller a 
 while back in a different session, hence I will backoff for this node to be 
 deleted by Zookeeper and retry (kafka.utils.ZkUtils$)
 {code}
 h3. Steps to Reproduce
 In a single kafka 0.8.1.1 node, single zookeeper 3.4.6 (but will likely 
 behave the same with the ZK version included in Kafka distribution) node 
 setup:
 # start both zookeeper and kafka (in any order)
 # stop zookeeper
 # stop kafka
 # start 

[jira] [Resolved] (KAFKA-1646) Improve consumer read performance for Windows

2015-06-19 Thread Jun Rao (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-1646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jun Rao resolved KAFKA-1646.

   Resolution: Fixed
Fix Version/s: 0.8.3
 Assignee: Honghai Chen  (was: xueqiang wang)

Thanks for the patch. Sorry for the delay. +1. Committed to trunk after fixing 
a compilation error.

:core:compileTestScala/Users/junrao/intellij/kafka/core/src/test/scala/unit/kafka/log/LogSegmentTest.scala:233:
 type mismatch;
 found   : Long
 required: Int
val seg = new LogSegment(tempDir, offset, 10, 1000, 0, SystemTime, 
fileAlreadyExists = fileAlreadyExists, initFileSize = initFileSize, preallocate 
= preallocate)

 ^
one error found
 FAILED


 Improve consumer read performance for Windows
 -

 Key: KAFKA-1646
 URL: https://issues.apache.org/jira/browse/KAFKA-1646
 Project: Kafka
  Issue Type: Improvement
  Components: log
Affects Versions: 0.8.1.1
 Environment: Windows
Reporter: xueqiang wang
Assignee: Honghai Chen
  Labels: newbie, patch
 Fix For: 0.8.3

 Attachments: Improve consumer read performance for Windows.patch, 
 KAFKA-1646-truncate-off-trailing-zeros-on-broker-restart-if-bro.patch, 
 KAFKA-1646_20141216_163008.patch, KAFKA-1646_20150306_005526.patch, 
 KAFKA-1646_20150511_AddTestcases.patch, 
 KAFKA-1646_20150609_MergeToLatestTrunk.patch, 
 KAFKA-1646_20150616_FixFormat.patch, KAFKA-1646_20150618_235231.patch


 This patch is for Window platform only. In Windows platform, if there are 
 more than one replicas writing to disk, the segment log files will not be 
 consistent in disk and then consumer reading performance will be dropped down 
 greatly. This fix allocates more disk spaces when rolling a new segment, and 
 then it will improve the consumer reading performance in NTFS file system.
 This patch doesn't affect file allocation of other filesystems, for it only 
 adds statements like 'if(Os.iswindow)' or adds methods used on Windows.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


Re: Review Request 35503: Patch for KAFKA-2012

2015-06-19 Thread Manikumar Reddy O

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35503/
---

(Updated June 19, 2015, 3:42 p.m.)


Review request for kafka.


Bugs: KAFKA-2012
https://issues.apache.org/jira/browse/KAFKA-2012


Repository: kafka


Description
---

Address Jun's comments


Diffs (updated)
-

  core/src/main/scala/kafka/log/Log.scala 
6b9274d5f1fff434440e00d9f0e27d32b673076a 
  core/src/test/scala/unit/kafka/log/LogTest.scala 
a8e57c2348e694a1e0d5407ae8ae105fb1f1bf59 

Diff: https://reviews.apache.org/r/35503/diff/


Testing
---


Thanks,

Manikumar Reddy O



[jira] [Commented] (KAFKA-2271) transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps

2015-06-19 Thread Jason Gustafson (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593622#comment-14593622
 ] 

Jason Gustafson commented on KAFKA-2271:


Created reviewboard https://reviews.apache.org/r/35655/diff/
 against branch upstream/trunk

 transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps
 

 Key: KAFKA-2271
 URL: https://issues.apache.org/jira/browse/KAFKA-2271
 Project: Kafka
  Issue Type: Sub-task
  Components: core
Reporter: Jun Rao
 Attachments: KAFKA-2271.patch


 Saw the following transient failure in jenkins.
 java.lang.AssertionError: expected:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, log.cleaner.enable=true, 
 inter.broker.protocol.version=0.8.3.X, host.name=? , 
 log.cleaner.backoff.ms=2080497098, log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, queued.max.requests=673019914, 
 controlled.shutdown.max.retries=1810738435, num.replica.fetchers=1160759331, 
 socket.request.max.bytes=1453815395, log.flush.interval.ms=762170329, 
 offsets.topic.replication.factor=1011, 
 log.flush.offset.checkpoint.interval.ms=923125288, 
 security.inter.broker.protocol=PLAINTEXT, 
 zookeeper.session.timeout.ms=413974606, metrics.sample.window.ms=1000, 
 offsets.topic.compression.codec=1, 
 zookeeper.connection.timeout.ms=2068179601, 
 fetch.purgatory.purge.interval.requests=1242197204, 
 log.retention.bytes=692466534, log.dirs=/tmp/logs,/tmp/logs2, 
 replica.fetch.min.bytes=1791426389, compression.type=lz4, 
 log.roll.jitter.ms=356707666, log.cleaner.threads=2, 
 replica.lag.time.max.ms=1073834162, advertised.port=4321, 
 max.connections.per.ip.overrides=127.0.0.1:2, 127.0.0.2:3, 
 socket.send.buffer.bytes=1319605180, metrics.num.samples=2, port=1234, 
 replica.fetch.wait.max.ms=321, log.segment.bytes=468671022, 
 log.retention.minutes=772707425, auto.create.topics.enable=true, 
 replica.socket.receive.buffer.bytes=1923367476, 
 log.cleaner.io.max.bytes.per.second=0.2, zookeeper.sync.time.ms=2072589946, 
 log.roll.jitter.hours=2106718330, log.retention.check.interval.ms=906922522, 
 reserved.broker.max.id=100, unclean.leader.election.enable=true, 
 advertised.listeners=PLAINTEXT://:2909, 
 log.cleaner.io.buffer.load.factor=1.0, 
 consumer.min.session.timeout.ms=422104288, log.retention.ms=1496447411, 
 replica.high.watermark.checkpoint.interval.ms=118464842, 
 log.cleanup.policy=delete, log.cleaner.dedupe.buffer.size=3145729, 
 offsets.commit.timeout.ms=2084609508, min.insync.replicas=963487957, 
 zookeeper.connect=127.0.0.1:2181, 
 leader.imbalance.per.broker.percentage=148038876, 
 log.index.interval.bytes=242075900, 
 leader.imbalance.check.interval.seconds=1376263302, 
 offsets.retention.minutes=1781435041, socket.receive.buffer.bytes=369224522, 
 log.cleaner.delete.retention.ms=898157008, 
 replica.socket.timeout.ms=493318414, num.partitions=2, 
 offsets.topic.segment.bytes=852590082, default.replication.factor=549663639, 
 log.cleaner.io.buffer.size=905972186, offsets.commit.required.acks=-1, 
 num.recovery.threads.per.data.dir=1012415473, log.retention.hours=1115262747, 
 replica.fetch.max.bytes=2041540755, log.roll.hours=115708840, 
 metric.reporters=, message.max.bytes=1234, 
 log.cleaner.min.cleanable.ratio=0.6, offsets.load.buffer.size=1818565888, 
 delete.topic.enable=true, listeners=PLAINTEXT://:9092, 
 offset.metadata.max.bytes=1563320007, 
 controlled.shutdown.retry.backoff.ms=1270013702, 
 max.connections.per.ip=359602609, consumer.max.session.timeout.ms=2124317921, 
 log.roll.ms=241126032, advertised.host.name=??, 
 log.flush.scheduler.interval.ms=1548906710, 
 auto.leader.rebalance.enable=false, 
 producer.purgatory.purge.interval.requests=1640729755, 
 controlled.shutdown.enable=false, log.index.size.max.bytes=1748380064, 
 log.flush.interval.messages=982245822, broker.id=15, 
 offsets.retention.check.interval.ms=593078788, 
 replica.fetch.backoff.ms=394858256, background.threads=124969300, 
 connections.max.idle.ms=554679959} but was:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, 
 inter.broker.protocol.version=0.8.3.X, log.cleaner.enable=true, 
 host.name=?, log.cleaner.backoff.ms=2080497098, 
 log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, 
 controlled.shutdown.max.retries=1810738435, queued.max.requests=673019914, 
 num.replica.fetchers=1160759331, socket.request.max.bytes=1453815395, 
 log.flush.interval.ms=762170329, offsets.topic.replication.factor=1011, 
 log.flush.offset.checkpoint.interval.ms=923125288, 
 security.inter.broker.protocol=PLAINTEXT, 
 

Review Request 35655: Patch for KAFKA-2271

2015-06-19 Thread Jason Gustafson

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35655/
---

Review request for kafka.


Bugs: KAFKA-2271
https://issues.apache.org/jira/browse/KAFKA-2271


Repository: kafka


Description
---

KAFKA-2271; fix minor test bugs


Diffs
-

  core/src/test/scala/unit/kafka/server/KafkaConfigConfigDefTest.scala 
98a5b042a710d3c1064b0379db1d152efc9eabee 

Diff: https://reviews.apache.org/r/35655/diff/


Testing
---


Thanks,

Jason Gustafson



[jira] [Updated] (KAFKA-2271) transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps

2015-06-19 Thread Jason Gustafson (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2271?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Gustafson updated KAFKA-2271:
---
Attachment: KAFKA-2271.patch

 transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps
 

 Key: KAFKA-2271
 URL: https://issues.apache.org/jira/browse/KAFKA-2271
 Project: Kafka
  Issue Type: Sub-task
  Components: core
Reporter: Jun Rao
 Attachments: KAFKA-2271.patch


 Saw the following transient failure in jenkins.
 java.lang.AssertionError: expected:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, log.cleaner.enable=true, 
 inter.broker.protocol.version=0.8.3.X, host.name=? , 
 log.cleaner.backoff.ms=2080497098, log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, queued.max.requests=673019914, 
 controlled.shutdown.max.retries=1810738435, num.replica.fetchers=1160759331, 
 socket.request.max.bytes=1453815395, log.flush.interval.ms=762170329, 
 offsets.topic.replication.factor=1011, 
 log.flush.offset.checkpoint.interval.ms=923125288, 
 security.inter.broker.protocol=PLAINTEXT, 
 zookeeper.session.timeout.ms=413974606, metrics.sample.window.ms=1000, 
 offsets.topic.compression.codec=1, 
 zookeeper.connection.timeout.ms=2068179601, 
 fetch.purgatory.purge.interval.requests=1242197204, 
 log.retention.bytes=692466534, log.dirs=/tmp/logs,/tmp/logs2, 
 replica.fetch.min.bytes=1791426389, compression.type=lz4, 
 log.roll.jitter.ms=356707666, log.cleaner.threads=2, 
 replica.lag.time.max.ms=1073834162, advertised.port=4321, 
 max.connections.per.ip.overrides=127.0.0.1:2, 127.0.0.2:3, 
 socket.send.buffer.bytes=1319605180, metrics.num.samples=2, port=1234, 
 replica.fetch.wait.max.ms=321, log.segment.bytes=468671022, 
 log.retention.minutes=772707425, auto.create.topics.enable=true, 
 replica.socket.receive.buffer.bytes=1923367476, 
 log.cleaner.io.max.bytes.per.second=0.2, zookeeper.sync.time.ms=2072589946, 
 log.roll.jitter.hours=2106718330, log.retention.check.interval.ms=906922522, 
 reserved.broker.max.id=100, unclean.leader.election.enable=true, 
 advertised.listeners=PLAINTEXT://:2909, 
 log.cleaner.io.buffer.load.factor=1.0, 
 consumer.min.session.timeout.ms=422104288, log.retention.ms=1496447411, 
 replica.high.watermark.checkpoint.interval.ms=118464842, 
 log.cleanup.policy=delete, log.cleaner.dedupe.buffer.size=3145729, 
 offsets.commit.timeout.ms=2084609508, min.insync.replicas=963487957, 
 zookeeper.connect=127.0.0.1:2181, 
 leader.imbalance.per.broker.percentage=148038876, 
 log.index.interval.bytes=242075900, 
 leader.imbalance.check.interval.seconds=1376263302, 
 offsets.retention.minutes=1781435041, socket.receive.buffer.bytes=369224522, 
 log.cleaner.delete.retention.ms=898157008, 
 replica.socket.timeout.ms=493318414, num.partitions=2, 
 offsets.topic.segment.bytes=852590082, default.replication.factor=549663639, 
 log.cleaner.io.buffer.size=905972186, offsets.commit.required.acks=-1, 
 num.recovery.threads.per.data.dir=1012415473, log.retention.hours=1115262747, 
 replica.fetch.max.bytes=2041540755, log.roll.hours=115708840, 
 metric.reporters=, message.max.bytes=1234, 
 log.cleaner.min.cleanable.ratio=0.6, offsets.load.buffer.size=1818565888, 
 delete.topic.enable=true, listeners=PLAINTEXT://:9092, 
 offset.metadata.max.bytes=1563320007, 
 controlled.shutdown.retry.backoff.ms=1270013702, 
 max.connections.per.ip=359602609, consumer.max.session.timeout.ms=2124317921, 
 log.roll.ms=241126032, advertised.host.name=??, 
 log.flush.scheduler.interval.ms=1548906710, 
 auto.leader.rebalance.enable=false, 
 producer.purgatory.purge.interval.requests=1640729755, 
 controlled.shutdown.enable=false, log.index.size.max.bytes=1748380064, 
 log.flush.interval.messages=982245822, broker.id=15, 
 offsets.retention.check.interval.ms=593078788, 
 replica.fetch.backoff.ms=394858256, background.threads=124969300, 
 connections.max.idle.ms=554679959} but was:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, 
 inter.broker.protocol.version=0.8.3.X, log.cleaner.enable=true, 
 host.name=?, log.cleaner.backoff.ms=2080497098, 
 log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, 
 controlled.shutdown.max.retries=1810738435, queued.max.requests=673019914, 
 num.replica.fetchers=1160759331, socket.request.max.bytes=1453815395, 
 log.flush.interval.ms=762170329, offsets.topic.replication.factor=1011, 
 log.flush.offset.checkpoint.interval.ms=923125288, 
 security.inter.broker.protocol=PLAINTEXT, 
 zookeeper.session.timeout.ms=413974606, metrics.sample.window.ms=1000, 
 offsets.topic.compression.codec=1, 
 

[jira] [Updated] (KAFKA-2271) transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps

2015-06-19 Thread Jason Gustafson (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2271?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Gustafson updated KAFKA-2271:
---
Assignee: Jason Gustafson
  Status: Patch Available  (was: Open)

 transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps
 

 Key: KAFKA-2271
 URL: https://issues.apache.org/jira/browse/KAFKA-2271
 Project: Kafka
  Issue Type: Sub-task
  Components: core
Reporter: Jun Rao
Assignee: Jason Gustafson
 Attachments: KAFKA-2271.patch


 Saw the following transient failure in jenkins.
 java.lang.AssertionError: expected:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, log.cleaner.enable=true, 
 inter.broker.protocol.version=0.8.3.X, host.name=? , 
 log.cleaner.backoff.ms=2080497098, log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, queued.max.requests=673019914, 
 controlled.shutdown.max.retries=1810738435, num.replica.fetchers=1160759331, 
 socket.request.max.bytes=1453815395, log.flush.interval.ms=762170329, 
 offsets.topic.replication.factor=1011, 
 log.flush.offset.checkpoint.interval.ms=923125288, 
 security.inter.broker.protocol=PLAINTEXT, 
 zookeeper.session.timeout.ms=413974606, metrics.sample.window.ms=1000, 
 offsets.topic.compression.codec=1, 
 zookeeper.connection.timeout.ms=2068179601, 
 fetch.purgatory.purge.interval.requests=1242197204, 
 log.retention.bytes=692466534, log.dirs=/tmp/logs,/tmp/logs2, 
 replica.fetch.min.bytes=1791426389, compression.type=lz4, 
 log.roll.jitter.ms=356707666, log.cleaner.threads=2, 
 replica.lag.time.max.ms=1073834162, advertised.port=4321, 
 max.connections.per.ip.overrides=127.0.0.1:2, 127.0.0.2:3, 
 socket.send.buffer.bytes=1319605180, metrics.num.samples=2, port=1234, 
 replica.fetch.wait.max.ms=321, log.segment.bytes=468671022, 
 log.retention.minutes=772707425, auto.create.topics.enable=true, 
 replica.socket.receive.buffer.bytes=1923367476, 
 log.cleaner.io.max.bytes.per.second=0.2, zookeeper.sync.time.ms=2072589946, 
 log.roll.jitter.hours=2106718330, log.retention.check.interval.ms=906922522, 
 reserved.broker.max.id=100, unclean.leader.election.enable=true, 
 advertised.listeners=PLAINTEXT://:2909, 
 log.cleaner.io.buffer.load.factor=1.0, 
 consumer.min.session.timeout.ms=422104288, log.retention.ms=1496447411, 
 replica.high.watermark.checkpoint.interval.ms=118464842, 
 log.cleanup.policy=delete, log.cleaner.dedupe.buffer.size=3145729, 
 offsets.commit.timeout.ms=2084609508, min.insync.replicas=963487957, 
 zookeeper.connect=127.0.0.1:2181, 
 leader.imbalance.per.broker.percentage=148038876, 
 log.index.interval.bytes=242075900, 
 leader.imbalance.check.interval.seconds=1376263302, 
 offsets.retention.minutes=1781435041, socket.receive.buffer.bytes=369224522, 
 log.cleaner.delete.retention.ms=898157008, 
 replica.socket.timeout.ms=493318414, num.partitions=2, 
 offsets.topic.segment.bytes=852590082, default.replication.factor=549663639, 
 log.cleaner.io.buffer.size=905972186, offsets.commit.required.acks=-1, 
 num.recovery.threads.per.data.dir=1012415473, log.retention.hours=1115262747, 
 replica.fetch.max.bytes=2041540755, log.roll.hours=115708840, 
 metric.reporters=, message.max.bytes=1234, 
 log.cleaner.min.cleanable.ratio=0.6, offsets.load.buffer.size=1818565888, 
 delete.topic.enable=true, listeners=PLAINTEXT://:9092, 
 offset.metadata.max.bytes=1563320007, 
 controlled.shutdown.retry.backoff.ms=1270013702, 
 max.connections.per.ip=359602609, consumer.max.session.timeout.ms=2124317921, 
 log.roll.ms=241126032, advertised.host.name=??, 
 log.flush.scheduler.interval.ms=1548906710, 
 auto.leader.rebalance.enable=false, 
 producer.purgatory.purge.interval.requests=1640729755, 
 controlled.shutdown.enable=false, log.index.size.max.bytes=1748380064, 
 log.flush.interval.messages=982245822, broker.id=15, 
 offsets.retention.check.interval.ms=593078788, 
 replica.fetch.backoff.ms=394858256, background.threads=124969300, 
 connections.max.idle.ms=554679959} but was:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, 
 inter.broker.protocol.version=0.8.3.X, log.cleaner.enable=true, 
 host.name=?, log.cleaner.backoff.ms=2080497098, 
 log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, 
 controlled.shutdown.max.retries=1810738435, queued.max.requests=673019914, 
 num.replica.fetchers=1160759331, socket.request.max.bytes=1453815395, 
 log.flush.interval.ms=762170329, offsets.topic.replication.factor=1011, 
 log.flush.offset.checkpoint.interval.ms=923125288, 
 security.inter.broker.protocol=PLAINTEXT, 
 zookeeper.session.timeout.ms=413974606, 

[jira] [Commented] (KAFKA-2249) KafkaConfig does not preserve original Properties

2015-06-19 Thread Gwen Shapira (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593555#comment-14593555
 ] 

Gwen Shapira commented on KAFKA-2249:
-

Agree that the test is kinda silly now :)

And yes, the printouts were useful when debugging test cases with 1 topic and 1 
partition, but PITA in production.

OTOH, printout of non-default config per topic in a debug level INFO or 
DEBUG makes sense IMO (even on large systems) - it can be super useful when 
people send logs and ask for help. I'll see if we can do it per topic without 
making too much of a mess.

Mind if I take those fixes in separate JIRA? 

 KafkaConfig does not preserve original Properties
 -

 Key: KAFKA-2249
 URL: https://issues.apache.org/jira/browse/KAFKA-2249
 Project: Kafka
  Issue Type: Bug
Reporter: Gwen Shapira
Assignee: Gwen Shapira
 Fix For: 0.8.3

 Attachments: KAFKA-2249.patch, KAFKA-2249_2015-06-17_17:35:35.patch


 We typically generate configuration from properties objects (or maps).
 The old KafkaConfig, and the new ProducerConfig and ConsumerConfig all retain 
 the original Properties object, which means that if the user specified 
 properties that are not part of ConfigDef definitions, they are still 
 accessible.
 This is important especially for MetricReporters where we want to allow users 
 to pass arbitrary properties for the reporter.
 One way to support this is by having KafkaConfig implement AbstractConfig, 
 which will give us other nice functionality too.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (KAFKA-2271) transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps

2015-06-19 Thread Jason Gustafson (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593646#comment-14593646
 ] 

Jason Gustafson commented on KAFKA-2271:


This patch may or may not fix the problem, but the only apparent difference in 
the output above is the extra space after the random host.name field. Since the 
randomness of that field (and the advertised host name) didn't seem significant 
to the test, I just used a static string instead.

I also noticed a couple other minor problems which could cause the test to fail.

 transient unit test failure in KafkaConfigConfigDefTest.testFromPropsToProps
 

 Key: KAFKA-2271
 URL: https://issues.apache.org/jira/browse/KAFKA-2271
 Project: Kafka
  Issue Type: Sub-task
  Components: core
Reporter: Jun Rao
Assignee: Jason Gustafson
 Attachments: KAFKA-2271.patch


 Saw the following transient failure in jenkins.
 java.lang.AssertionError: expected:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, log.cleaner.enable=true, 
 inter.broker.protocol.version=0.8.3.X, host.name=? , 
 log.cleaner.backoff.ms=2080497098, log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, queued.max.requests=673019914, 
 controlled.shutdown.max.retries=1810738435, num.replica.fetchers=1160759331, 
 socket.request.max.bytes=1453815395, log.flush.interval.ms=762170329, 
 offsets.topic.replication.factor=1011, 
 log.flush.offset.checkpoint.interval.ms=923125288, 
 security.inter.broker.protocol=PLAINTEXT, 
 zookeeper.session.timeout.ms=413974606, metrics.sample.window.ms=1000, 
 offsets.topic.compression.codec=1, 
 zookeeper.connection.timeout.ms=2068179601, 
 fetch.purgatory.purge.interval.requests=1242197204, 
 log.retention.bytes=692466534, log.dirs=/tmp/logs,/tmp/logs2, 
 replica.fetch.min.bytes=1791426389, compression.type=lz4, 
 log.roll.jitter.ms=356707666, log.cleaner.threads=2, 
 replica.lag.time.max.ms=1073834162, advertised.port=4321, 
 max.connections.per.ip.overrides=127.0.0.1:2, 127.0.0.2:3, 
 socket.send.buffer.bytes=1319605180, metrics.num.samples=2, port=1234, 
 replica.fetch.wait.max.ms=321, log.segment.bytes=468671022, 
 log.retention.minutes=772707425, auto.create.topics.enable=true, 
 replica.socket.receive.buffer.bytes=1923367476, 
 log.cleaner.io.max.bytes.per.second=0.2, zookeeper.sync.time.ms=2072589946, 
 log.roll.jitter.hours=2106718330, log.retention.check.interval.ms=906922522, 
 reserved.broker.max.id=100, unclean.leader.election.enable=true, 
 advertised.listeners=PLAINTEXT://:2909, 
 log.cleaner.io.buffer.load.factor=1.0, 
 consumer.min.session.timeout.ms=422104288, log.retention.ms=1496447411, 
 replica.high.watermark.checkpoint.interval.ms=118464842, 
 log.cleanup.policy=delete, log.cleaner.dedupe.buffer.size=3145729, 
 offsets.commit.timeout.ms=2084609508, min.insync.replicas=963487957, 
 zookeeper.connect=127.0.0.1:2181, 
 leader.imbalance.per.broker.percentage=148038876, 
 log.index.interval.bytes=242075900, 
 leader.imbalance.check.interval.seconds=1376263302, 
 offsets.retention.minutes=1781435041, socket.receive.buffer.bytes=369224522, 
 log.cleaner.delete.retention.ms=898157008, 
 replica.socket.timeout.ms=493318414, num.partitions=2, 
 offsets.topic.segment.bytes=852590082, default.replication.factor=549663639, 
 log.cleaner.io.buffer.size=905972186, offsets.commit.required.acks=-1, 
 num.recovery.threads.per.data.dir=1012415473, log.retention.hours=1115262747, 
 replica.fetch.max.bytes=2041540755, log.roll.hours=115708840, 
 metric.reporters=, message.max.bytes=1234, 
 log.cleaner.min.cleanable.ratio=0.6, offsets.load.buffer.size=1818565888, 
 delete.topic.enable=true, listeners=PLAINTEXT://:9092, 
 offset.metadata.max.bytes=1563320007, 
 controlled.shutdown.retry.backoff.ms=1270013702, 
 max.connections.per.ip=359602609, consumer.max.session.timeout.ms=2124317921, 
 log.roll.ms=241126032, advertised.host.name=??, 
 log.flush.scheduler.interval.ms=1548906710, 
 auto.leader.rebalance.enable=false, 
 producer.purgatory.purge.interval.requests=1640729755, 
 controlled.shutdown.enable=false, log.index.size.max.bytes=1748380064, 
 log.flush.interval.messages=982245822, broker.id=15, 
 offsets.retention.check.interval.ms=593078788, 
 replica.fetch.backoff.ms=394858256, background.threads=124969300, 
 connections.max.idle.ms=554679959} but was:{num.io.threads=2051678117, 
 log.dir=/tmp/log, num.network.threads=442579598, 
 offsets.topic.num.partitions=1996793767, 
 inter.broker.protocol.version=0.8.3.X, log.cleaner.enable=true, 
 host.name=?, log.cleaner.backoff.ms=2080497098, 
 log.segment.delete.delay.ms=516834257, 
 controller.socket.timeout.ms=11414, 
 

Re: Review Request 34789: Patch for KAFKA-2168

2015-06-19 Thread Jason Gustafson

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/34789/
---

(Updated June 19, 2015, 4:19 p.m.)


Review request for kafka.


Bugs: KAFKA-2168
https://issues.apache.org/jira/browse/KAFKA-2168


Repository: kafka


Description (updated)
---

KAFKA-2168; refactored callback handling to prevent unnecessary requests


KAFKA-2168; address review comments


KAFKA-2168; fix rebase error and checkstyle issue


KAFKA-2168; address review comments and add docs


KAFKA-2168; handle polling with timeout 0


KAFKA-2168; timeout=0 means return immediately


KAFKA-2168; address review comments


KAFKA-2168; address more review comments


KAFKA-2168; updated for review comments


Diffs (updated)
-

  clients/src/main/java/org/apache/kafka/clients/consumer/Consumer.java 
8f587bc0705b65b3ef37c86e0c25bb43ab8803de 
  clients/src/main/java/org/apache/kafka/clients/consumer/ConsumerRecords.java 
1ca75f83d3667f7d01da1ae2fd9488fb79562364 
  
clients/src/main/java/org/apache/kafka/clients/consumer/ConsumerWakeupException.java
 PRE-CREATION 
  clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java 
951c34c92710fc4b38d656e99d2a41255c60aeb7 
  clients/src/main/java/org/apache/kafka/clients/consumer/MockConsumer.java 
f50da825756938c193d7f07bee953e000e2627d9 
  
clients/src/main/java/org/apache/kafka/clients/consumer/OffsetResetStrategy.java
 PRE-CREATION 
  
clients/src/main/java/org/apache/kafka/clients/consumer/internals/Coordinator.java
 41cb9458f51875ac9418fce52f264b35adba92f4 
  
clients/src/main/java/org/apache/kafka/clients/consumer/internals/Fetcher.java 
56281ee15cc33dfc96ff64d5b1e596047c7132a4 
  
clients/src/main/java/org/apache/kafka/clients/consumer/internals/Heartbeat.java
 e7cfaaad296fa6e325026a5eee1aaf9b9c0fe1fe 
  
clients/src/main/java/org/apache/kafka/clients/consumer/internals/RequestFuture.java
 PRE-CREATION 
  
clients/src/main/java/org/apache/kafka/clients/consumer/internals/SubscriptionState.java
 cee75410127dd1b86c1156563003216d93a086b3 
  clients/src/main/java/org/apache/kafka/common/utils/Utils.java 
f73eedb030987f018d8446bb1dcd98d19fa97331 
  clients/src/test/java/org/apache/kafka/clients/consumer/MockConsumerTest.java 
677edd385f35d4262342b567262c0b874876d25b 
  
clients/src/test/java/org/apache/kafka/clients/consumer/internals/CoordinatorTest.java
 1454ab73df22cce028f41f74b970628829da4e9d 
  
clients/src/test/java/org/apache/kafka/clients/consumer/internals/FetcherTest.java
 419541011d652becf0cda7a5e62ce813cddb1732 
  
clients/src/test/java/org/apache/kafka/clients/consumer/internals/HeartbeatTest.java
 ecc78cedf59a994fcf084fa7a458fe9ed5386b00 
  
clients/src/test/java/org/apache/kafka/clients/consumer/internals/SubscriptionStateTest.java
 e000cf8e10ebfacd6c9ee68d7b88ff8c157f73c6 
  clients/src/test/java/org/apache/kafka/common/utils/UtilsTest.java 
2ebe3c21f611dc133a2dbb8c7dfb0845f8c21498 

Diff: https://reviews.apache.org/r/34789/diff/


Testing
---


Thanks,

Jason Gustafson



[jira] [Commented] (KAFKA-2168) New consumer poll() can block other calls like position(), commit(), and close() indefinitely

2015-06-19 Thread Jason Gustafson (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593579#comment-14593579
 ] 

Jason Gustafson commented on KAFKA-2168:


Updated reviewboard https://reviews.apache.org/r/34789/diff/
 against branch upstream/trunk

 New consumer poll() can block other calls like position(), commit(), and 
 close() indefinitely
 -

 Key: KAFKA-2168
 URL: https://issues.apache.org/jira/browse/KAFKA-2168
 Project: Kafka
  Issue Type: Sub-task
  Components: clients, consumer
Reporter: Ewen Cheslack-Postava
Assignee: Jason Gustafson
Priority: Critical
 Fix For: 0.8.3

 Attachments: KAFKA-2168.patch, KAFKA-2168_2015-06-01_16:03:38.patch, 
 KAFKA-2168_2015-06-02_17:09:37.patch, KAFKA-2168_2015-06-03_18:20:23.patch, 
 KAFKA-2168_2015-06-03_21:06:42.patch, KAFKA-2168_2015-06-04_14:36:04.patch, 
 KAFKA-2168_2015-06-05_12:01:28.patch, KAFKA-2168_2015-06-05_12:44:48.patch, 
 KAFKA-2168_2015-06-11_14:09:59.patch, KAFKA-2168_2015-06-18_14:39:36.patch, 
 KAFKA-2168_2015-06-19_09:19:02.patch


 The new consumer is currently using very coarse-grained synchronization. For 
 most methods this isn't a problem since they finish quickly once the lock is 
 acquired, but poll() might run for a long time (and commonly will since 
 polling with long timeouts is a normal use case). This means any operations 
 invoked from another thread may block until the poll() call completes.
 Some example use cases where this can be a problem:
 * A shutdown hook is registered to trigger shutdown and invokes close(). It 
 gets invoked from another thread and blocks indefinitely.
 * User wants to manage offset commit themselves in a background thread. If 
 the commit policy is not purely time based, it's not currently possibly to 
 make sure the call to commit() will be processed promptly.
 Two possible solutions to this:
 1. Make sure a lock is not held during the actual select call. Since we have 
 multiple layers (KafkaConsumer - NetworkClient - Selector - nio Selector) 
 this is probably hard to make work cleanly since locking is currently only 
 performed at the KafkaConsumer level and we'd want it unlocked around a 
 single line of code in Selector.
 2. Wake up the selector before synchronizing for certain operations. This 
 would require some additional coordination to make sure the caller of 
 wakeup() is able to acquire the lock promptly (instead of, e.g., the poll() 
 thread being woken up and then promptly reacquiring the lock with a 
 subsequent long poll() call).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (KAFKA-2168) New consumer poll() can block other calls like position(), commit(), and close() indefinitely

2015-06-19 Thread Jason Gustafson (JIRA)

 [ 
https://issues.apache.org/jira/browse/KAFKA-2168?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Gustafson updated KAFKA-2168:
---
Attachment: KAFKA-2168_2015-06-19_09:19:02.patch

 New consumer poll() can block other calls like position(), commit(), and 
 close() indefinitely
 -

 Key: KAFKA-2168
 URL: https://issues.apache.org/jira/browse/KAFKA-2168
 Project: Kafka
  Issue Type: Sub-task
  Components: clients, consumer
Reporter: Ewen Cheslack-Postava
Assignee: Jason Gustafson
Priority: Critical
 Fix For: 0.8.3

 Attachments: KAFKA-2168.patch, KAFKA-2168_2015-06-01_16:03:38.patch, 
 KAFKA-2168_2015-06-02_17:09:37.patch, KAFKA-2168_2015-06-03_18:20:23.patch, 
 KAFKA-2168_2015-06-03_21:06:42.patch, KAFKA-2168_2015-06-04_14:36:04.patch, 
 KAFKA-2168_2015-06-05_12:01:28.patch, KAFKA-2168_2015-06-05_12:44:48.patch, 
 KAFKA-2168_2015-06-11_14:09:59.patch, KAFKA-2168_2015-06-18_14:39:36.patch, 
 KAFKA-2168_2015-06-19_09:19:02.patch


 The new consumer is currently using very coarse-grained synchronization. For 
 most methods this isn't a problem since they finish quickly once the lock is 
 acquired, but poll() might run for a long time (and commonly will since 
 polling with long timeouts is a normal use case). This means any operations 
 invoked from another thread may block until the poll() call completes.
 Some example use cases where this can be a problem:
 * A shutdown hook is registered to trigger shutdown and invokes close(). It 
 gets invoked from another thread and blocks indefinitely.
 * User wants to manage offset commit themselves in a background thread. If 
 the commit policy is not purely time based, it's not currently possibly to 
 make sure the call to commit() will be processed promptly.
 Two possible solutions to this:
 1. Make sure a lock is not held during the actual select call. Since we have 
 multiple layers (KafkaConsumer - NetworkClient - Selector - nio Selector) 
 this is probably hard to make work cleanly since locking is currently only 
 performed at the KafkaConsumer level and we'd want it unlocked around a 
 single line of code in Selector.
 2. Wake up the selector before synchronizing for certain operations. This 
 would require some additional coordination to make sure the caller of 
 wakeup() is able to acquire the lock promptly (instead of, e.g., the poll() 
 thread being woken up and then promptly reacquiring the lock with a 
 subsequent long poll() call).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (KAFKA-2012) Broker should automatically handle corrupt index files

2015-06-19 Thread Mayuresh Gharat (JIRA)

[ 
https://issues.apache.org/jira/browse/KAFKA-2012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14593812#comment-14593812
 ] 

Mayuresh Gharat edited comment on KAFKA-2012 at 6/19/15 7:30 PM:
-

Discussed this with [~jjkoshy]. This patch seems like a workaround and does not 
actually tell us why the file got corrupted in first place. We can probably 
have a config that can turn this code path ON or OFF, so that we can actually 
investigate when this happens. 
Let me know, I can open another ticket or use this : 
https://issues.apache.org/jira/browse/KAFKA-1554 to add that config.

This was discussed in KAFKA-1554 :

Joel Koshy added a comment - 14/Mar/15 01:10
That would be a work-around, but ideally we should figure out why it happened 
in the first place.

 Jun Rao added a comment - 09/Apr/15 02:06
Yes, I am not sure if auto fixing the index is better. People then may not 
realize if there is an issue. It would be better to figure out what's causing 
this.


Thanks,

Mayuresh



was (Author: mgharat):
Discussed this with [~jjkoshy]. This patch seems like a workaround and does not 
actually tell us why the file got corrupted in first place. We can probably 
have a config that can turn this code path ON or OFF, so that we can actually 
investigate when this happens. 
Let me know, I can open another ticket or use this : 
https://issues.apache.org/jira/browse/KAFKA-1554 to add that config.

Thanks,

Mayuresh


 Broker should automatically handle corrupt index files
 --

 Key: KAFKA-2012
 URL: https://issues.apache.org/jira/browse/KAFKA-2012
 Project: Kafka
  Issue Type: Bug
Affects Versions: 0.8.1.1
Reporter: Todd Palino
Assignee: Manikumar Reddy
 Fix For: 0.8.3

 Attachments: KAFKA-2012.patch, KAFKA-2012_2015-06-19_18:55:11.patch, 
 KAFKA-2012_2015-06-19_21:09:22.patch


 We had a bunch of unclean system shutdowns (power failure), which caused 
 corruption on our disks holding log segments in many cases. While the broker 
 is handling the log segment corruption properly (truncation), it is having 
 problems with corruption in the index files. Additionally, this only seems to 
 be happening on some startups (while we are upgrading).
 The broker should just do what I do when I hit a corrupt index file - remove 
 it and rebuild it.
 2015/03/09 17:58:53.873 FATAL [KafkaServerStartable] [main] [kafka-server] [] 
 Fatal error during KafkaServerStartable startup. Prepare to shutdown
 java.lang.IllegalArgumentException: requirement failed: Corrupt index found, 
 index file 
 (/export/content/kafka/i001_caches/__consumer_offsets-39/.index)
  has non-zero size but the last offset is -2121629628 and the base offset is 0
   at scala.Predef$.require(Predef.scala:233)
   at kafka.log.OffsetIndex.sanityCheck(OffsetIndex.scala:352)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:185)
   at kafka.log.Log$$anonfun$loadSegments$5.apply(Log.scala:184)
   at scala.collection.Iterator$class.foreach(Iterator.scala:727)
   at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
   at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
   at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
   at kafka.log.Log.loadSegments(Log.scala:184)
   at kafka.log.Log.init(Log.scala:82)
   at 
 kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$7$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:141)
   at kafka.utils.Utils$$anon$1.run(Utils.scala:54)
   at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (KAFKA-2287) Add metric to track the number of clientId throttled

2015-06-19 Thread Aditya Auradkar (JIRA)
Aditya Auradkar created KAFKA-2287:
--

 Summary: Add metric to track the number of clientId throttled
 Key: KAFKA-2287
 URL: https://issues.apache.org/jira/browse/KAFKA-2287
 Project: Kafka
  Issue Type: Sub-task
Reporter: Aditya Auradkar
Assignee: Aditya Auradkar






--
This message was sent by Atlassian JIRA
(v6.3.4#6332)