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]