Skip to main content

[Vertica][VJDBC](3399) ERROR: Failure in UDx RPC call InvokeProcessPartition(): UDx side process ha

  • September 11, 2014
  • 3 replies
  • 14 views

Andy_He
Hi All,

I encountered such error when I tried to run a UDF in my query.
It is a TransformFunction written in C++.
It simply reads a Tweet JSON string as input and then extract some attribute values from it.

The query I run is something like this:

SELECT user_id, hashtag, created_at, text 
FROM (SELECT twitter(json) over(partition by hash(json))
            FROM tweetjson) as foo;

I am running vertica 6.1.3 in a 16-node cluster, each node has 4 CPU cores and 32GB RAM.
The UDF "twitter" works well when the table tweetjson is small, e.g., 16GB.  
However, when the table size was 500GB, the query failed, and returned the following message:  
java.sql.SQLException: [Vertica][VJDBC](3399) ERROR: Failure in UDx RPC call InvokeProcessPartition(): UDx side process has exited abnormally
    at com.vertica.util.ServerErrorData.buildException(Unknown Source)
    at com.vertica.dataengine.VResultSet.fetchChunk(Unknown Source)
    at com.vertica.dataengine.VResultSet.initialize(Unknown Source)
    at com.vertica.dataengine.VQueryExecutor.readExecuteResponse(Unknown Source)

I didn't change any default resource configuration. Was it the reason that the UDF was out of memory?
Where can I find the log that contains more detailed error message?


Thanks,

3 replies

eli_revach
Forum|alt.badge.img+2
  • Participating Frequently
  • September 11, 2014
You can see more details on UDxLogs/UDxFencedProcesses.log


Daniel_Leybovic
Forum|alt.badge.img+1
  • Participating Frequently
  • September 11, 2014
Hi!

twitter(json) - is it in-house development? Have you source code for it?

>> Where can I find the log that contains more detailed error message?
UDx Debugging Tips
Writing Messages to the Log File




Daniel_Leybovic
Forum|alt.badge.img+1
  • Participating Frequently
  • September 11, 2014
Hi Eli!

Did you tested Java UDx? If I do cancel to my JUDFx it still running. I have to execute:
SELECT RELEASE_JVM_MEMORY();
I mean that next peace of code doesn't work for me:
if (this.isCanceled()) {     srvInterface.log("Got canceled! Exiting...");     return; }
I do not see "Got canceled! Exiting..." in log.

Regards Daniel