2020-01-07 09:14:38 UTC - Lykant: @Lykant has joined the channel
----
2020-01-07 14:17:33 UTC - Alexandre DUVAL: There is a simple way to run pulsar 
standalone without function worker ?
----
2020-01-07 15:11:13 UTC - Sijie Guo: `bin/pulsar standalone -nfw`
----
2020-01-07 15:12:05 UTC - vikash: Hello All,
i am using Apache Pulsar v2.4.2. and running as Standalone.
i am getting the NullPointerException checkNotNull exception in custom 
connector and connector write() method not getting trigger while sending 
message to pulsar.


1.I have taken refrence of pulsar-io jdbc built-in connector code and changed 
driver connection to Apache Ignite JDBC.

2.Created AVRO schema for the pulsar topic and uploaded.
  schema like ./connectors/schema_example.conf:
  {
  "type": "AVRO",
  "schema": 
"{\"type\":\"record\",\"name\":\"Test\",\"fields\":[{\"name\":\"id\",\"type\":[\"null\",\"int\"]},{\"name\":\"name\",\"type\":[\"null\",\"string\"]}]}",
  "properties": {}
 }

 Uploaded Schema:
 /apache-pulsar-2.4.2/bin#./pulsar-admin schemas upload myjdbc --filename 
./connectors/schema_example.conf


3.created connector on pulsar:
  /apache-pulsar-2.4.2/bin#./pulsar-admin sinks localrun --archive 
./connectors/pulsar-io-jdbc-2.4.2.nar --inputs myjdbc --name myjdbc 
--sink-config-file ./connectors/pulsar-io-jdbc-ignite-sink.yaml


4.Open() method triggering and insert statement preparing successfully.


5.If topic already not exist and first time create command executing on pulsar 
no exception.
  but onces sending message to pulsar from producer.sendAsync(byteArrayMessage)
  getting the NullPointerException checkNotNull exception
  and Write() method not getting call/triggering

here is the exception and log message:
=================================================================================
root@biz-VBox:/opt/pulsar/apache-pulsar-2.4.2/bin#
root@biz-VBox:/opt/pulsar/apache-pulsar-2.4.2/bin#
root@biz-VBox:/opt/pulsar/apache-pulsar-2.4.2/bin# ./pulsar-admin sinks 
localrun --archive ./connectors/pulsar-io-jdbc-2.4.2.nar --inputs myjdbc --name 
myjdbc --sink-config-file ./connectors/pulsar-io-jdbc-ignite-sink.yaml
19:48:28.849 [main] INFO  
<http://org.apache.pulsar.functions.utils.io|org.apache.pulsar.functions.utils.io>.ConnectorUtils
 - Searching for connectors in /opt/pulsar/apache-pulsar-2.4.2/connectors
19:48:29.003 [main] INFO  
<http://org.apache.pulsar.functions.utils.io|org.apache.pulsar.functions.utils.io>.ConnectorUtils
 - Found connector ConnectorDefinition(name=ignite, description=Ignite sink 
connector, sourceClass=null, 
sinkClass=<http://org.apache.pulsar.io|org.apache.pulsar.io>.ignite.IgniteBytesSink)
 from /opt/pulsar/apache-pulsar-2.4.2/connectors/pulsar-io-ignite-2.4.1.nar
19:48:29.612 [main] INFO  
<http://org.apache.pulsar.functions.utils.io|org.apache.pulsar.functions.utils.io>.ConnectorUtils
 - Found connector ConnectorDefinition(name=ignitetopictest, description=Jdbc 
Ignite sink, sourceClass=null, 
sinkClass=<http://org.apache.pulsar.io|org.apache.pulsar.io>.jdbc.ignite.JdbcAutoSchemaSink)
 from /opt/pulsar/apache-pulsar-2.4.2/connectors/pulsar-io-jdbc-ignite-2.4.1.nar
19:48:30.113 [main] INFO  
<http://org.apache.pulsar.functions.utils.io|org.apache.pulsar.functions.utils.io>.ConnectorUtils
 - Found connector ConnectorDefinition(name=jdbc, description=Jdbc sink, 
sourceClass=null, 
sinkClass=<http://org.apache.pulsar.io|org.apache.pulsar.io>.jdbc.JdbcAutoSchemaSink)
 from /opt/pulsar/apache-pulsar-2.4.2/connectors/pulsar-io-jdbc-2.4.1.nar
19:48:30.520 [main] INFO  
<http://org.apache.pulsar.functions.utils.io|org.apache.pulsar.functions.utils.io>.ConnectorUtils
 - Found connector ConnectorDefinition(name=myjdbc, description=Jdbc sink, 
sourceClass=null, 
sinkClass=<http://org.apache.pulsar.io|org.apache.pulsar.io>.jdbc.JdbcAutoSchemaSink)
 from /opt/pulsar/apache-pulsar-2.4.2/connectors/pulsar-io-jdbc-2.4.2.nar
19:48:33.026 [main] INFO  org.apache.pulsar.functions.runtime.RuntimeSpawner - 
public/default/myjdbc-0 RuntimeSpawner starting function
19:48:33.029 [main] INFO  org.apache.pulsar.functions.runtime.ThreadRuntime - 
ThreadContainer starting function with instance config 
InstanceConfig(instanceId=0, functionId=aa384dfc-da74-4e1a-9739-355f5f57aac4, 
functionVersion=6c9f3846-7a21-4722-a453-a5f563d101f4, functionDetails=tenant: 
"public"
namespace: "default"
name: "myjdbc"
className: "org.apache.pulsar.functions.api.utils.IdentityFunction"
autoAck: true
parallelism: 1
source {
  typeClassName: "org.apache.pulsar.client.api.schema.GenericRecord"
  inputSpecs {
    key: "myjdbc"
    value {
    }
  }
  cleanupSubscription: true
}
sink {
  className: 
"<http://org.apache.pulsar.io|org.apache.pulsar.io>.jdbc.JdbcAutoSchemaSink"
  configs: 
"{\"jdbcUrl\":\"jdbc:ignite:<thin://localhost/>\",\"tableName\":\"ENTITIESTABLEINFO\"}"
  typeClassName: "org.apache.pulsar.client.api.schema.GenericRecord"
}
resources {
  cpu: 1.0
  ram: 1073741824
  disk: 10737418240
}
componentType: SINK
, maxBufferedTuples=1024, functionAuthenticationSpec=null, port=43629, 
clusterName=local)
2020-01-07 19:48:33,952 - INFO  - [public/default/myjdbc-0:JdbcAbstractSink@80] 
- OPEN INVOKE&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
19:48:36.332 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConnectionPool - [[id: 0x10072908, 
L:/127.0.0.1:39486 - R:localhost/127.0.0.1:6650]] Connected to server
19:48:36.500 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.PulsarClientImpl - Configuring schema for topic 
myjdbc : {
  "name": "public/default/myjdbc",
  "schema": {
    "type": "record",
    "name": "Test",
    "fields": [
      {
        "name": "id",
        "type": [
          "null",
          "int"
        ]
      },
      {
        "name": "name",
        "type": [
          "null",
          "string"
        ]
      }
    ]
  },
  "type": "AVRO",
  "properties": {}
}
19:48:37.141 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.schema.AutoConsumeSchema - Configure topic schema 
for topic myjdbc : 
{"type":"record","name":"Test","fields":[{"name":"id","type":["null","int"]},{"name":"name","type":["null","string"]}]}
19:48:37.319 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerStatsRecorderImpl - Starting Pulsar 
consumer perf with config: {
  "topicNames" : [ "myjdbc" ],
  "topicsPattern" : null,
  "subscriptionName" : "public/default/myjdbc",
  "subscriptionType" : "Shared",
  "receiverQueueSize" : 1000,
  "acknowledgementsGroupTimeMicros" : 100000,
  "negativeAckRedeliveryDelayMicros" : 60000000,
  "maxTotalReceiverQueueSizeAcrossPartitions" : 50000,
  "consumerName" : null,
  "ackTimeoutMillis" : 0,
  "tickDurationMillis" : 1000,
  "priorityLevel" : 0,
  "cryptoFailureAction" : "CONSUME",
  "properties" : {
    "application" : "pulsar-sink",
    "id" : "public/default/myjdbc",
    "instance_id" : "0"
  },
  "readCompacted" : false,
  "subscriptionInitialPosition" : "Latest",
  "patternAutoDiscoveryPeriod" : 1,
  "regexSubscriptionMode" : "PersistentOnly",
  "deadLetterPolicy" : null,
  "autoUpdatePartitions" : true,
  "replicateSubscriptionState" : false,
  "resetIncludeHead" : false
}
19:48:37.343 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerStatsRecorderImpl - Pulsar client config: 
{
  "serviceUrl" : "<pulsar://localhost:6650>",
  "authPluginClassName" : null,
  "authParams" : null,
  "operationTimeoutMs" : 30000,
  "statsIntervalSeconds" : 60,
  "numIoThreads" : 1,
  "numListenerThreads" : 1,
  "connectionsPerBroker" : 1,
  "useTcpNoDelay" : true,
  "useTls" : false,
  "tlsTrustCertsFilePath" : null,
  "tlsAllowInsecureConnection" : false,
  "tlsHostnameVerificationEnable" : false,
  "concurrentLookupRequest" : 5000,
  "maxLookupRequest" : 50000,
  "maxNumberOfRejectedRequestPerConnection" : 50,
  "keepAliveIntervalSeconds" : 30,
  "connectionTimeoutMs" : 10000,
  "requestTimeoutMs" : 60000,
  "initialBackoffIntervalNanos" : 100000000,
  "maxBackoffIntervalNanos" : 60000000000
}
19:48:37.434 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConnectionPool - [[id: 0x557fb218, 
L:/127.0.0.1:39488 - R:localhost/127.0.0.1:6650]] Connected to server
19:48:37.437 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ClientCnx - [id: 0x557fb218, L:/127.0.0.1:39488 - 
R:localhost/127.0.0.1:6650] Connected through proxy to target broker at 
192.168.1.97:6650
19:48:37.445 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - [myjdbc][public/default/myjdbc] 
Subscribing to topic on cnx [id: 0x557fb218, L:/127.0.0.1:39488 - 
R:localhost/127.0.0.1:6650]
19:48:37.503 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - [myjdbc][public/default/myjdbc] 
Subscribed to topic on localhost/127.0.0.1:6650 -- consumer: 0
19:48:37.557 [pulsar-client-io-1-1] INFO  
com.scurrilous.circe.checksum.Crc32cIntChecksum - SSE4.2 CRC32C provider 
initialized
19:48:37.715 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConsumerImpl - [myjdbc] [public/default/myjdbc] 
Closed consumer
19:48:37.942 [main] INFO  org.apache.pulsar.functions.LocalRunner - 
RuntimeSpawner quit because of
java.lang.NullPointerException: null
        at 
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:877) 
~[com.google.guava-guava-25.1-jre.jar:?]
        at com.google.common.cache.LocalCache.get(LocalCache.java:3950) 
~[com.google.guava-guava-25.1-jre.jar:?]
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3973) 
~[com.google.guava-guava-25.1-jre.jar:?]
        at 
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4957) 
~[com.google.guava-guava-25.1-jre.jar:?]
        at 
org.apache.pulsar.client.impl.schema.StructSchema.decode(StructSchema.java:94) 
~[org.apache.pulsar-pulsar-client-original-2.4.2.jar:2.4.2]
        at 
org.apache.pulsar.client.impl.schema.AutoConsumeSchema.decode(AutoConsumeSchema.java:72)
 ~[org.apache.pulsar-pulsar-client-original-2.4.2.jar:2.4.2]
        at 
org.apache.pulsar.client.impl.schema.AutoConsumeSchema.decode(AutoConsumeSchema.java:36)
 ~[org.apache.pulsar-pulsar-client-original-2.4.2.jar:2.4.2]
        at org.apache.pulsar.client.api.Schema.decode(Schema.java:97) 
~[org.apache.pulsar-pulsar-client-api-2.4.2.jar:2.4.2]
        at 
org.apache.pulsar.client.impl.MessageImpl.getValue(MessageImpl.java:268) 
~[org.apache.pulsar-pulsar-client-original-2.4.2.jar:2.4.2]
        at 
org.apache.pulsar.functions.source.PulsarRecord.getValue(PulsarRecord.java:74) 
~[org.apache.pulsar-pulsar-functions-instance-2.4.2.jar:2.4.2]
        at 
org.apache.pulsar.functions.instance.JavaInstanceRunnable.readInput(JavaInstanceRunnable.java:473)
 ~[org.apache.pulsar-pulsar-functions-instance-2.4.2.jar:2.4.2]
        at 
org.apache.pulsar.functions.instance.JavaInstanceRunnable.run(JavaInstanceRunnable.java:246)
 ~[org.apache.pulsar-pulsar-functions-instance-2.4.2.jar:2.4.2]
        at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_232]
19:49:03.105 [function-timer-thread-5-1] ERROR 
org.apache.pulsar.functions.runtime.RuntimeSpawner - 
public/default/myjdbc-java.lang.NullPointerException Function Container is dead 
with exception.. restarting
----
2020-01-07 15:13:23 UTC - Alexandre DUVAL: Ty!
----
2020-01-07 15:45:57 UTC - Roman Popenov: Looks like some of the defined fields 
are null when the object is being deserialized and sinked as a record
----
2020-01-07 15:50:21 UTC - Roman Popenov: When you serialize the object from the 
source and write it to a topic, it looks like the value is `null`
----
2020-01-07 16:31:29 UTC - Jocelyne Bergey: @Jocelyne Bergey has joined the 
channel
----
2020-01-07 16:39:06 UTC - Lukas Chripko: did anybody succesfully build 
install/build pulsar-client on alpine? dockerfile example working with alpine?
----
2020-01-07 16:47:42 UTC - juraj: u can create a "Snippet" post here on slack to 
avoid flooding the channel
----
2020-01-07 16:50:52 UTC - juraj: seach for the keyword `build` on this slack, u 
will find some stuff
----
2020-01-07 19:55:03 UTC - Martin Garnier: @Martin Garnier has joined the channel
----
2020-01-07 20:19:18 UTC - Mathieu Druart: Hi, we try to use the State storage 
inside a Pulsar Function but we always have this error : 
`java.lang.IllegalStateException: State is not enabled.`
----
2020-01-07 20:20:28 UTC - Mathieu Druart: The Function is run in a k8s cluster 
deployed with the mini Helm configuration
----
2020-01-07 20:22:30 UTC - Mathieu Druart: @Sijie Guo we changed our code to use 
a JSONSchema instead of the Avro Schema and now it works
----
2020-01-07 20:24:36 UTC - Mathieu Druart: Is there something to do to enable 
State ?
----
2020-01-07 21:02:42 UTC - Pedro Cardoso: Yes, you need to add
```extraServerComponents: 
"org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent"```
Under the bookkeeper.configData section, see 
<https://github.com/apache/pulsar/issues/5687>
+1 : Mathieu Druart
----
2020-01-07 21:03:51 UTC - Pedro Cardoso: I believe is fixed on the 2.5.0 
release candidate
----
2020-01-07 21:36:08 UTC - Martin Garnier: awesome, thanks Pedro :)
----
2020-01-07 22:08:44 UTC - Eron Wright: Would it make sense to have Pulsar SQL 
listed as a connector in Presto documentation?  Just curious.
<https://prestodb.io/docs/current/connector.html>
----
2020-01-07 22:41:10 UTC - Roman Popenov: So the functions are packaged in a 
`jar`, but the connectors are in a `nar` ?
----
2020-01-07 22:42:03 UTC - Roman Popenov: Can I specify a `--jar` for Pulsar IO?
----
2020-01-07 22:42:49 UTC - Roman Popenov: or point it to a jar with the `-a`?
----
2020-01-07 22:43:27 UTC - Roman Popenov: ```Usage: pulsar-admin sources 
[options] [command] [command options]
  Commands:
    create      Submit a Pulsar IO source connector to run in a Pulsar cluster
      Usage: create [options]
        Options:
          -a, --archive
             The path to the NAR archive for the Source. It also supports
             url-path [http/https/file (file protocol assumes that file already 
exists on
             worker host)] from which worker can download the package.```
----
2020-01-07 23:52:54 UTC - Roman Popenov: JAR also seems to be working just fine 
as well
----
2020-01-08 00:01:24 UTC - Roman Popenov: I keep getting:
```00:00:22.491 [function-timer-thread-5-1] ERROR 
org.apache.pulsar.functions.runtime.RuntimeSpawner - 
test-tenant/test-ns/s3-org.apache.avro.AvroRuntimeException: 
avro.shaded.com.google.common.util.concurrent.UncheckedExecutionException: 
org.apache.avro.AvroRuntimeException: Can't find element type of Collection 
Function Container is dead with exception.. restarting```
----
2020-01-08 00:17:50 UTC - Addison Higham: :thinking_face: has anyone tried to 
write to s3 using the pulsar IO hdfs sink and s3a library? Quick read of the 
code makes me think it should work is likely to produce duplicates and also 
would likely cache to local disk... also not sure how in S3 it would chunk files
----
2020-01-08 00:21:13 UTC - Roman Popenov: s3a library works like a charm, I used 
it in a Pulsar Function
----
2020-01-08 00:52:26 UTC - Roman Popenov: Guess this is related to 
<https://github.com/streamnative/pulsar/issues/222>
----
2020-01-08 01:31:07 UTC - juraj: how far back does the broker search for a 
messageid to fulfill a cumulative acknowledgement ?    i'm trying after ~25 
minutes (~1k msgs), but the ack call is basically ignored (persistent topic, 
deduplication enabled)
----
2020-01-08 05:53:19 UTC - vikash: Hello  ,I  have  struck  in  issue   where  i 
 want  to  know whats going on  from  server  side
----
2020-01-08 05:53:31 UTC - vikash: how  to  start  pulsar  standalone  as  debug 
mode
----
2020-01-08 05:53:47 UTC - vikash: bin/pulsar standalone --debug not  working
----
2020-01-08 08:01:21 UTC - xiaolong.ran: You can configure it in `conf / 
log4j.yml`, as follows:

```      - name: org.apache.pulsar.broker.service
        level: debug
        additivity: false
        AppenderRef:
          - ref: Console```
----

Reply via email to