enriched commented on issue #7675:
URL: https://github.com/apache/pulsar/issues/7675#issuecomment-694520538


   @Shenfeng1011 is this fixed for you now? I am trying to run the presto 
connector with offloading enabled and appear to be getting the same exception:
   ```
   2020-09-17T19:49:39.093Z     ERROR   remote-task-callback-11 
io.airlift.concurrent.BoundedExecutor   Task failed
   java.lang.IllegalArgumentException: io.prestosql.server.TaskUpdateRequest 
could not be converted to JSON
        at io.airlift.json.JsonCodec.toJsonBytes(JsonCodec.java:214)
        at 
io.prestosql.server.remotetask.HttpRemoteTask.sendUpdate(HttpRemoteTask.java:513)
        at 
io.airlift.concurrent.BoundedExecutor.drainQueue(BoundedExecutor.java:78)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
   Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No 
serializer found for class 
org.apache.pulsar.common.policies.data.OffloadPolicies and no properties 
discovered to create BeanSerializer (to avoid exception, disable 
SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: 
io.prestosql.server.TaskUpdateRequest["sources"]->com.google.common.collect.SingletonImmutableList[0]->io.prestosql.execution.TaskSource["splits"]->com.google.common.collect.RegularImmutableSet[0]->io.prestosql.execution.ScheduledSplit["split"]->io.prestosql.metadata.Split["connectorSplit"]->org.apache.pulsar.sql.presto.PulsarSplit["offloadPolicies"])
        at 
com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77)
        at 
com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1191)
        at 
com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:404)
        at 
com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:71)
        at 
com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:33)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeWithType(BeanSerializerBase.java:607)
        at 
io.prestosql.metadata.AbstractTypedJacksonModule$InternalTypeSerializer.serialize(AbstractTypedJacksonModule.java:115)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
        at 
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
        at 
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
        at 
com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:145)
        at 
com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:107)
        at 
com.fasterxml.jackson.databind.ser.std.CollectionSerializer.serialize(CollectionSerializer.java:25)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
        at 
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
        at 
com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
        at 
com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)
        at 
com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
        at 
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
        at 
com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
        at 
com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:400)
        at 
com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1429)
        at 
com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:1135)
        at 
com.fasterxml.jackson.databind.ObjectWriter.writeValueAsBytes(ObjectWriter.java:1029)
        at io.airlift.json.JsonCodec.toJsonBytes(JsonCodec.java:211)
        ... 5 more
   ```
   
   I do have a slightly different setup though. I am installing presto using 
[prestosql v332 
tarball](https://repo1.maven.org/maven2/io/prestosql/presto-server/332/presto-server-332.tar.gz)
 and then installing the [pulsar-presto-connector 
tarball](https://maxviewpublic.blob.core.windows.net/pulsar/pulsar-presto-connector.tar.gz)
 that gets built in `/pulsar-sql/presto-plusar-plugin`.
   
   My presto config for the pulsar connector looks like:
   ```properties
   connector.name=pulsar
   pulsar.broker-service-url=http://my-pulsar-broker:8080
   pulsar.zookeeper-uri=my-pulsar-zookeeper:2181
   pulsar.max-entry-read-batch-size=100
   pulsar.target-num-splits=2
   pulsar.max-split-message-queue-size=10000
   pulsar.max-split-entry-queue-size=1000
   pulsar.managed-ledger-offload-driver=s3
   pulsar.offloaders-directory=/pulsar/offloaders
   pulsar.managed-ledger-offload-max-threads=2
   pulsar.offloader-properties = \
    {"s3ManagedLedgerOffloadBucket": "pulsar-offload", \
    "s3ManagedLedgerOffloadServiceEndpoint": "http://my-minio:9000";, \
    "s3ManagedLedgerOffloadRegion": "us-east-1"}
   pulsar.namespace-delimiter-rewrite-enable=false
   pulsar.rewrite-namespace-delimiter=/
   ```


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

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


Reply via email to