[
https://issues.apache.org/jira/browse/NIFI-5612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16626438#comment-16626438
]
Colin Dean commented on NIFI-5612:
----------------------------------
I decided to try a wider range of precisions, too:
{code:sql}
create table fails1 ( fails int(1) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails1 values();
create table fails2 ( fails int(2) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails2 values();
create table fails3 ( fails int(3) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails3 values();
create table fails4 ( fails int(4) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails4 values();
create table fails5 ( fails int(5) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails5 values();
create table fails6 ( fails int(6) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails6 values();
create table fails7 ( fails int(7) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails7 values();
create table fails8 ( fails int(8) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails8 values();
create table fails9 ( fails int(9) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails9 values();
create table fails10 ( fails int(10) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails10 values();
create table fails11 ( fails int(11) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails11 values();
create table fails12 ( fails int(12) unsigned NOT NULL default '0' )
ENGINE=InnoDB AUTO_INCREMENT=16527 DEFAULT CHARSET=latin1;
insert into fails12 values();
{code}
Success => 12, 10, 9
Failure => 1, 2, 8, 6
> org.apache.avro.UnresolvedUnionException: Not in union ["null","int"]: 0
> ------------------------------------------------------------------------
>
> Key: NIFI-5612
> URL: https://issues.apache.org/jira/browse/NIFI-5612
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 1.5.0, 1.6.0, 1.7.1
> Environment: Microsoft Windows, MySQL Enterprise 5.0.80
> Reporter: Colin Dean
> Priority: Major
> Labels: ExecuteSQL, avro, nifi
>
> I'm seeing this when I execute {{SELECT * FROM <tablename>}} on a few tables
> but not on dozens of others in the same database.
> {code}
> 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
> {code}
> 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.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)