eolivelli opened a new pull request #12917:
URL: https://github.com/apache/pulsar/pull/12917


   - Add tests that boot Protocol Handlers and Proxy Extensions
   - Fix Bootstrap of Protocol Handlers and Proxy Extensions
   
   ### Motivation
   Unfortunately #12692 broke the bootstrap of ProtocolHandlers.
   There was no test who verified that actually PH worked.
   
   This is the error I saw:
   ```
   pulsar-broker 10:27:00.856 [main] INFO  
io.streamnative.pulsar.handlers.kop.utils.MetadataUtils - Current state of 
kafka metadata, cluster: pulsar exists: true, tenant: public exists: true, 
namespace: public/ │
   │ pulsar-broker 10:27:00.887 [metadata-store-6-1] INFO  
io.streamnative.pulsar.handlers.kop.KopEventManager - Refresh kop brokers new 
cache {PLAINTEXT=[10.244.3.3:9092 (id: 1452253944 rack: null), 10.244.2.2:90 │
   │ pulsar-broker 10:27:00.925 [main] ERROR 
org.apache.pulsar.broker.PulsarService - Failed to start Pulsar service: 
channelFactory set already                                                      
                │
   │ pulsar-broker java.lang.IllegalStateException: channelFactory set already  
                                                                                
                                                      │
   │ pulsar-broker     at 
io.netty.bootstrap.AbstractBootstrap.channelFactory(AbstractBootstrap.java:121) 
~[io.netty-netty-transport-4.1.68.Final.jar:4.1.68.Final]                       
                            │
   │ pulsar-broker     at 
io.netty.bootstrap.AbstractBootstrap.channelFactory(AbstractBootstrap.java:137) 
~[io.netty-netty-transport-4.1.68.Final.jar:4.1.68.Final]                       
                            │
   │ pulsar-broker     at 
io.netty.bootstrap.AbstractBootstrap.channel(AbstractBootstrap.java:109) 
~[io.netty-netty-transport-4.1.68.Final.jar:4.1.68.Final]                       
                                   │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.startProtocolHandler(BrokerService.java:398)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
                │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.lambda$startProtocolHandlers$3(BrokerService.java:379)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
      │
   │ pulsar-broker     at 
com.google.common.collect.RegularImmutableMap.forEach(RegularImmutableMap.java:185)
 ~[com.google.guava-guava-30.1-jre.jar:?]                                       
                         │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.lambda$startProtocolHandlers$4(BrokerService.java:377)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
      │
   │ pulsar-broker     at java.util.HashMap.forEach(HashMap.java:1336) ~[?:?]   
                                                                                
                                                      │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.startProtocolHandlers(BrokerService.java:376)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
               │
   │ pulsar-broker     at 
org.apache.pulsar.broker.PulsarService.start(PulsarService.java:788) 
[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT]  
                                       │
   │ pulsar-broker     at 
org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.start(PulsarBrokerStarter.java:259)
 [com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
                     │
   │ pulsar-broker     at 
org.apache.pulsar.PulsarBrokerStarter.main(PulsarBrokerStarter.java:331) 
[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT]  
                                   │
   │ pulsar-broker 10:27:00.926 [main] ERROR 
org.apache.pulsar.PulsarBrokerStarter - Failed to start pulsar service.         
                                                                                
         │
   │ pulsar-broker org.apache.pulsar.broker.PulsarServerException: 
java.lang.IllegalStateException: channelFactory set already                     
                                                                   │
   │ pulsar-broker     at 
org.apache.pulsar.broker.PulsarService.start(PulsarService.java:821) 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
                                       │
   │ pulsar-broker     at 
org.apache.pulsar.PulsarBrokerStarter$BrokerStarter.start(PulsarBrokerStarter.java:259)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
                    │
   │ pulsar-broker     at 
org.apache.pulsar.PulsarBrokerStarter.main(PulsarBrokerStarter.java:331) 
[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT]  
                                   │
   │ pulsar-broker Caused by: java.lang.IllegalStateException: channelFactory 
set already                                                                     
                                                        │
   │ pulsar-broker     at 
io.netty.bootstrap.AbstractBootstrap.channelFactory(AbstractBootstrap.java:121) 
~[io.netty-netty-transport-4.1.68.Final.jar:4.1.68.Final]                       
                            │
   │ pulsar-broker     at 
io.netty.bootstrap.AbstractBootstrap.channelFactory(AbstractBootstrap.java:137) 
~[io.netty-netty-transport-4.1.68.Final.jar:4.1.68.Final]                       
                            │
   │ pulsar-broker     at 
io.netty.bootstrap.AbstractBootstrap.channel(AbstractBootstrap.java:109) 
~[io.netty-netty-transport-4.1.68.Final.jar:4.1.68.Final]                       
                                   │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.startProtocolHandler(BrokerService.java:398)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
                │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.lambda$startProtocolHandlers$3(BrokerService.java:379)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
      │
   │ pulsar-broker     at 
com.google.common.collect.RegularImmutableMap.forEach(RegularImmutableMap.java:185)
 ~[com.google.guava-guava-30.1-jre.jar:?]                                       
                         │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.lambda$startProtocolHandlers$4(BrokerService.java:377)
 
~[com.datastax.oss-pulsar-broker-2.8.0.1.1.7-SNAPSHOT.jar:2.8.0.1.1.7-SNAPSHOT] 
      │
   │ pulsar-broker     at java.util.HashMap.forEach(HashMap.java:1336) ~[?:?]   
                                                                                
                                                      │
   │ pulsar-broker     at 
org.apache.pulsar.broker.service.BrokerService.startProtocolHandlers(BrokerService.java:376)
 ~[co
   ```
   
   ### Modifications
   
   - Create a new ServerBootstrap for each PH.
   - Do the same thing for Proxy Extensions
   - Add test cases that really start a PH (and a PE) and test that it works
    
   ### Verifying this change
   
   This change added tests 
   
   Need to update docs? 
     - [x] `no-need-doc` 
     
   


-- 
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