ssl tests fail on windows / slurp_file() offset doesn't work on win
Andres Freund <andres@anarazel.de>
Hi, On 2021-10-02 21:05:17 -0700, Andres Freund wrote: > Got the build part working (although the state of msvc compatible openssl > distribution on windows seems a bit scary). However the ssl tests don't > fully succeed: > > https://cirrus-ci.com/task/6264790323560448?logs=ssl#L655 > > I didn't see code in the bf client code running the test so perhaps that's > not too surprising :/ > > Did you run those tests on windows? As you can see in the test output, every mismatch prints the whole file, despite only intending to show the tail. Which appears to be because the windows portion of 3c5b0685b921 doesn't actually work. The reason for that in turn is that afaict the setFilePointer doesn't change the file position in a way that affects perl. Consequently, if I force the !win32 path, the tests pass. At first I assumed the cause of this is that while the setFilePointer() modifies the state of the underlying handle, it doesn't actually let perl know about that. Due to buffering etc perl likely has its own bookeeping about the position in the file. There's some pretty clear hints in https://perldoc.perl.org/functions/seek But the problem turns out to be that it's bogus to pass $fh to setFilePointer(). That's a perl handle, not an win32 handle. Fixing that seems to make the tests pass. Why did 3c5b0685b921 choose to use setFilePointer() in the first place? At this point it's a perl filehandle, so we should just use perl seek? Leaving the concrete breakage aside, I'm somewhat unhappy that there's not a single comment explaining why TestLib.pm is trying to use native windows APIs. Isn't the code as-is also "leaking" an open IO::Handle? There's a CloseHandle($fHandle), but nothing is done to $fh. But perhaps there's some perl magic cleaning things up? Even if so, loks like just closing $fh will close the handle as well... Greetings, Andres Freund
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
ci: enable zstd where available.
- ff50baec65bb 15.0 landed
-
ci: compile with -Og where applicable.
- 4a288a37f9b7 15.0 landed
-
ci: include hints how to install OS packages.
- 225fb558cd42 15.0 landed
-
ci: fix copy-paste mistake in 16eb8231d1b.
- f79c94f39df0 15.0 landed
-
ci: macos: align sysinfo_script to other tasks.
- 0a156058aa49 15.0 landed
-
ci: Only use one artifact instruction for logs.
- 16eb8231d1b5 15.0 landed
-
ci: s/CCACHE_SIZE/CCACHE_MAXSIZE/.
- 79b79dd57a96 15.0 landed
-
pg_basebackup: Skip a few more fsyncs if --no-sync is specified.
- 9c86d9337eb0 15.0 landed
-
TAP tests: check for postmaster.pid anyway when "pg_ctl start" fails.
- b0623625a0a3 14.2 landed
- 99aa0ff68a2c 11.15 landed
- 6eec809fbcfb 13.6 landed
- 6c4a8903b93f 15.0 landed
- 5940d1b027d7 12.10 landed
- 40756287ff1f 10.20 landed
-
Don't enable fsync in src/test/recovery/t/008_fsm_truncation.pl.
- a7f4171071bb 15.0 landed
-
ci: windows: run initdb with --no-sync.
- dfc0cb3940cd 15.0 landed
-
ci: windows: enable build summary to make it easier to spot warnings / errors.
- 8a1ce5e54f6d 15.0 landed
-
ci: Add continuous integration for github repositories via cirrus-ci.
- 93d973494613 15.0 landed
-
Fix TestLib::slurp_file() with offset on windows.
- 9e3be5c182d7 9.6.24 landed
- d5fa3c086eab 10.19 landed
- 0a134c860fc1 11.14 landed
- cd1b2334b8a2 12.9 landed
- 5ba397f7404e 13.5 landed
- c4465cd09e3a 14.1 landed
- 2f74db1236fe 15.0 landed