OmniaGM commented on PR #16766:
URL: https://github.com/apache/kafka/pull/16766#issuecomment-2270846127

   > I tried this code and it didn't really behave quite right I feel. I did:
   > 
   > * Create 2 topics T1 and T2
   > * Reset offsets of consumer group G1 consuming from earliest offset of T1 
with `bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--reset-offsets --topic T1 --group G1 --to-earliest --execute`
   > * Reset offsets of consumer group G1 consuming from earliest offset of T2 
with `bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--reset-offsets --topic T2 --group G1 --to-earliest --execute`
   > * Start `bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 
--reset-offsets --topic T1 --group G1 --to-earliest --execute` under a debugger 
and run up to a breakpoint in `ConsumerGroupCommand.getLogStartOffsets`
   > * Delete topic T1 so that the new exception handling code is executed.
   > * Resume the debugger.
   > 
   > The output is as follows:
   > 
   > ```
   > [2024-08-02 12:22:13,881] ERROR [AdminClient clientId=adminclient-1] 
Received unknown topic error for topic T1 
(org.apache.kafka.clients.admin.internals.PartitionLeaderStrategy)
   > org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This 
server does not host this topic-partition.
   > Error getting starting offset of topic partition: T1-0
   > Option                                  Description                        
    
   > ------                                  -----------                        
    
   > --all-groups                            Apply to all consumer groups.      
    
   > --all-topics                            Consider all topics assigned to a  
    
   >                                           group in the `reset-offsets` 
process.
   > --bootstrap-server <String: server to   REQUIRED: The server(s) to connect 
to. 
   >   connect to>                                                              
    
   > --by-duration <String: duration>        Reset offsets to offset by 
duration    
   >                                           from current timestamp. Format:  
    
   >                                           'PnDTnHnMnS'                     
    
   > --command-config <String: command       Property file containing configs 
to be 
   >   config property file>                   passed to Admin Client and 
Consumer. 
   > --delete                                Pass in groups to delete topic     
    
   >                                           partition offsets and ownership  
    
   >                                           information over the entire 
consumer 
   >                                           group. For instance --group g1 
--    
   >                                           group g2                         
    
   > --delete-offsets                        Delete offsets of consumer group.  
    
   >                                           Supports one consumer group at 
the   
   >                                           time, and multiple topics.       
    
   > --describe                              Describe consumer group and list   
    
   >                                           offset lag (number of messages 
not   
   >                                           yet processed) related to given  
    
   >                                           group.                           
    
   > --dry-run                               Only show results without 
executing    
   >                                           changes on Consumer Groups.      
    
   >                                           Supported operations: 
reset-offsets. 
   > --execute                               Execute operation. Supported       
    
   >                                           operations: reset-offsets.       
    
   > --export                                Export operation execution to a 
CSV    
   >                                           file. Supported operations: 
reset-   
   >                                           offsets.                         
    
   > --from-file <String: path to CSV file>  Reset offsets to values defined in 
CSV 
   >                                           file.                            
    
   > --group <String: consumer group>        The consumer group we wish to act 
on.  
   > --help                                  Print usage information.           
    
   > --list                                  List all consumer groups.          
    
   > --members                               Describe members of the group. 
This    
   >                                           option may be used with 
'--describe' 
   >                                           and '--bootstrap-server' options 
    
   >                                           only.                            
    
   >                                         Example: --bootstrap-server 
localhost: 
   >                                           9092 --describe --group group1 
--    
   >                                           members                          
    
   > --offsets                               Describe the group and list all 
topic  
   >                                           partitions in the group along 
with   
   >                                           their offset lag. This is the    
    
   >                                           default sub-action of and may be 
    
   >                                           used with '--describe' and '--   
    
   >                                           bootstrap-server' options only.  
    
   >                                         Example: --bootstrap-server 
localhost: 
   >                                           9092 --describe --group group1 
--    
   >                                           offsets                          
    
   > --reset-offsets                         Reset offsets of consumer group.   
    
   >                                           Supports one consumer group at 
the   
   >                                           time, and instances should be    
    
   >                                           inactive                         
    
   >                                         Has 2 execution options: --dry-run 
    
   >                                           (the default) to plan which 
offsets  
   >                                           to reset, and --execute to 
update    
   >                                           the offsets. Additionally, the 
--    
   >                                           export option is used to export 
the  
   >                                           results to a CSV format.         
    
   >                                         You must choose one of the 
following   
   >                                           reset specifications: 
--to-datetime, 
   >                                           --by-duration, --to-earliest, 
--to-  
   >                                           latest, --shift-by, --from-file, 
--  
   >                                           to-current, --to-offset.         
    
   >                                         To define the scope use 
--all-topics   
   >                                           or --topic. One scope must be    
    
   >                                           specified unless you use 
'--from-    
   >                                           file'.                           
    
   > --shift-by <Long: number-of-offsets>    Reset offsets shifting current 
offset  
   >                                           by 'n', where 'n' can be 
positive or 
   >                                           negative.                        
    
   > --state [String]                        When specified with '--describe',  
    
   >                                           includes the state of the group. 
    
   >                                         Example: --bootstrap-server 
localhost: 
   >                                           9092 --describe --group group1 
--    
   >                                           state                            
    
   >                                         When specified with '--list', it   
    
   >                                           displays the state of all 
groups. It 
   >                                           can also be used to list groups 
with 
   >                                           specific states.                 
    
   >                                         Example: --bootstrap-server 
localhost: 
   >                                           9092 --list --state stable,empty 
    
   >                                         This option may be used with '--   
    
   >                                           describe', '--list' and 
'--bootstrap-
   >                                           server' options only.            
    
   > --timeout <Long: timeout (ms)>          The timeout that can be set for 
some   
   >                                           use cases. For example, it can 
be    
   >                                           used when describing the group 
to    
   >                                           specify the maximum amount of 
time   
   >                                           in milliseconds to wait before 
the   
   >                                           group stabilizes (when the group 
is  
   >                                           just created, or is going 
through    
   >                                           some changes). (default: 5000)   
    
   > --to-current                            Reset offsets to current offset.   
    
   > --to-datetime <String: datetime>        Reset offsets to offset from 
datetime. 
   >                                           Format: 
'YYYY-MM-DDTHH:mm:SS.sss'    
   > --to-earliest                           Reset offsets to earliest offset.  
    
   > --to-latest                             Reset offsets to latest offset.    
    
   > --to-offset <Long: offset>              Reset offsets to a specific 
offset.    
   > --topic <String: topic>                 The topic whose consumer group     
    
   >                                           information should be deleted or 
    
   >                                           topic whose should be included 
in    
   >                                           the reset offset process. In 
`reset- 
   >                                           offsets` case, partitions can be 
    
   >                                           specified using this format: 
`topic1:
   >                                           0,1,2`, where 0,1,2 are the      
    
   >                                           partition to be included in the  
    
   >                                           process. Reset-offsets also 
supports 
   >                                           multiple topic inputs.           
    
   > --type [String]                         When specified with '--list', it   
    
   >                                           displays the types of all the    
    
   >                                           groups. It can also be used to 
list  
   >                                           groups with specific types.      
    
   >                                         Example: --bootstrap-server 
localhost: 
   >                                           9092 --list --type 
classic,consumer  
   >                                         This option may be used with the 
'--   
   >                                           list' option only.               
    
   > --verbose                               Provide additional information, if 
    
   >                                           any, when describing the group. 
This 
   >                                           option may be used with '--      
    
   >                                           offsets'/'--members'/'--state' 
and   
   >                                           '--bootstrap-server' options 
only.   
   >                                         Example: --bootstrap-server 
localhost: 
   >                                           9092 --describe --group group1 
--    
   >                                           members --verbose                
    
   > --version                               Display Kafka version.   
   > ```
   > 
   > The command reports the error neatly, but then it seems to print out the 
command usage message.
   
   I didn't test reset-offset as the jira is about the `describe --all-groups` 
which prevent showing metadata for the whole cluster. I the reset-offset for an 
individual group should behave as it is. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to