Open jacobalberty opened 4 years ago
Hm, yeah, I'm not entirely surprised...I've had some issues reported in the past with this.
The core issue is that mirror uses watchman for file watching, which is a C library that uses POSIX APIs that are not UTF-8, they use whatever encoding the file system happens to use.
But for everything else that is not-file-watching, mirror uses the regular Java APIs, which assumed UTF-8.
So for vanilla strings that look the same in POSIX (via watchman via JNI) & UTF-8, everything is fine by happenstance.
Just for reference, I've tried to hack around some of this by just ignoring "can't be UTF-8" string failures from watchman's Java library:
https://github.com/stephenh/watchman/commit/55847b54e7e28142fae5460cb9323278b9ccea67
But for some reason your paths "made it past" the original POSIX -> watchman -> JNI -> mirror hop, and only failed when mirror then tried to send that thought-it-was-UTF-8 string back into Java's own "utf back to native" layer.
I really don't have any good ideas and realistically won't dive deeper on this at the moment.
If you can get a test case written that somehow creates a file path in git / the PR that exhibits the ^ failure, that'd be great.
Just fired up the docker image and I'm getting this error over and over. I removed those files and things seem to be working fine now