Closed remoteportal closed 4 years ago
My initial guess is that it's a bug in the mysql1 package.
The readStringToEnd
method reads rest of the bytes currently in the buffer, from a certain offset.
What the error message is saying is that the first byte of that buffer is in the range 0x80-0xbf (a UTF-8 extension byte), which must not occur at the beginning of a UTF-8 character.
If the UTF-8 decoding reads such a byte, it means that somehow the use of the Buffer
prior to this call has consumed data which included the leading UTF-8 first-byte of the encoding (or has read too little and the byte seen here is not supposed to be UTF-8, or it just suffers from an off-by-one error somewhere).
It would be convenient if you can catch the error and look at the bytes that were attempted decoded (the FormatException.source
property). That might make it clear what's going on.
Thank you; that's VERY HELPFUL for me to continue debugging the problem!
I get a FormatException periodically causing a lot of development frustration with the adamlofts / mysql1_dart package. At first I thought it was this package but I've been debugging the stack trace below, but I can't find the code for convert-patch/convert_patch.dart; it's dying there.
It's sporadic... maybe 50% of the time certain INSERT statements fail. I've found that the longer in characters the INSERT statement , the more likely it is to fail. But, it will happen on very small statements like the following.
Example Statement
Stack trace on Windows:
Connect to database:
Dart Info via Flutter Doctor -v
MariaDB Info:
Execution
I run from Bit Bash command line on Windows 7:
MariaDB Show Variables