Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.5.0, 1.6.0, 1.7.1
-
Microsoft Windows, MySQL Enterprise 5.0.80
Description
I'm seeing this when I execute SELECT * FROM <tablename> on a few tables but not on dozens of others in the same database.
2018-09-13 01:11:31,434 WARN [Timer-Driven Process Thread-8] o.a.n.controller.tasks.ConnectableTask Administratively Yielding ExecuteSQL[id=cf5c0996-eddf-3e05-25a3-c407c5edf990] due to uncaught Exception: org.apache.avro.file.DataFileWriter$AppendWriteException: org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0 org.apache.avro.file.DataFileWriter$AppendWriteException: org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0 at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:308) at org.apache.nifi.processors.standard.util.JdbcCommon.convertToAvroStream(JdbcCommon.java:462) at org.apache.nifi.processors.standard.ExecuteSQL.lambda$onTrigger$1(ExecuteSQL.java:252) at org.apache.nifi.controller.repository.StandardProcessSession.write(StandardProcessSession.java:2625) at org.apache.nifi.processors.standard.ExecuteSQL.onTrigger(ExecuteSQL.java:242) at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1165) at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:203) at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0 at org.apache.avro.generic.GenericData.resolveUnion(GenericData.java:709) at org.apache.avro.generic.GenericDatumWriter.resolveUnion(GenericDatumWriter.java:192) at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:110) at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73) at org.apache.avro.generic.GenericDatumWriter.writeField(GenericDatumWriter.java:153) at org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:143) at org.apache.avro.generic.GenericDatumWriter.writeWithoutConversion(GenericDatumWriter.java:105) at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:73) at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:60) at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:302) ... 15 common frames omitted
I don't know if I can share the database schema – still working with my team on that – but looking at it, I think it has something to do with the signedness of int(1) or tinyint(1) because those two are the only numerical types common to all of the table.
Edit 2018-09-24, so that my update doesn't get buried:
I am able to reproduce the exception using
- Vagrant 2.1.1
- Virtualbox 5.2.18 r124319
- Ubuntu 18.04
- MySQL 5.0.81 (as close as I can get to the 5.0.80 Enterprise Edition in use on the system where I observed this failure first)
- MySQL Connector/J 5.1.46
- NiFi 1.7.1
With this table definition and data:
create table fails ( fails int(1) unsigned NOT NULL default '0' ) ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1; insert into fails values ();
and an ExecuteSQL processor set up to access that table.
Attachments
Issue Links
- links to