Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Large File Tests fail with Visual Studio 2015 #188

Closed
WardF opened this issue Jan 11, 2016 · 8 comments
Closed

Large File Tests fail with Visual Studio 2015 #188

WardF opened this issue Jan 11, 2016 · 8 comments

Comments

@WardF
Copy link
Member

WardF commented Jan 11, 2016

Large File tests are failing under Windows 10 when using Visual Studio 2015 (VS14). I've confirmed this using hdf5 1.8.15 and hdf5 1.8.16 (which shouldn't matter anyways), and have tried with libraries built using VS12 as well as VS14 . Visual Studio 13 (VS12) continues to work as expected.

@WardF WardF self-assigned this Jan 11, 2016
@WardF WardF added this to the 4.4.1 milestone Jan 11, 2016
@WardF
Copy link
Member Author

WardF commented Feb 29, 2016

All tests failing are:

  • nc_test4/tst_large2
  • nc_test4/tst_large
  • nc_tes/tst_big_var
  • nc_test/tst_big_rvar
  • nc_test/quick_large_files

See http://my.cdash.org/testDetails.php?test=23591494&build=920726 for details regarding one of the failures.

@WardF
Copy link
Member Author

WardF commented Feb 29, 2016

At the initial glance, failures appear to be related to calls to nc_close() and nc_open().

@WardF
Copy link
Member Author

WardF commented Feb 29, 2016

Diving into nc_test4/tst_large2(), I've traced the first error to a non-zero return code in posixio.c:fgrow2(). Specifically, the call to fstat on line 190 is returning 132.

@WardF
Copy link
Member Author

WardF commented Feb 29, 2016

When trying to track down errno 132 ,I've found the following:

This suggests that the problem/error is ENOBUFS, e.g. no buffer space available. odd.

Note that Windows is not listed as one of the platforms on this webpage, however

This may be a red herring, however; the same page says that we may need to reference _doserrno instead of errno for the "true" error number. More testing needed.

@WardF
Copy link
Member Author

WardF commented Mar 2, 2016

Found a comment in libsrc/posixio.c that I vaguely recall writing (for function ncio_px_filesize);

    /* There is a problem with fstat on Windows based systems
        which manifests (so far) when Config RELEASE is built.
        Use _filelengthi64 isntead. */

This suggests that I've encountered this or a similar issue in the past. It's also possible that we need to be using fstat64 instead of fstat. Diagnosis continues.

WardF added a commit that referenced this issue Mar 2, 2016
 . No idea why these were a problem in VS14 (Visual Studio 2015) and not in VS12 (Visual Studio 2013).  It's possible there are other, similar issues out there.  We'll see what turns up when we run all the tests.  These changes were tested against nc_test4/tst_large2.c
@WardF
Copy link
Member Author

WardF commented Mar 2, 2016

I've got a fix in place, but another issue needs investigating. With Large File Tests enabled (-DENABLE_LARGE_FILE_TESTS), the tests under Visual Studio 2015 anecdotally take much longer to complete, compared to the same code (branch gh88) with Visual Studio 2013. I need to do some formal testing of timings, to rule out one-off issues. Once this is established I'll add a comment here and, if necessary, open a new GitHub issue.

@WardF
Copy link
Member Author

WardF commented Mar 4, 2016

The timing issue has not reoccurred so I'm treating it as a one-off for now. The fix is in branch gh188 and will be merged after Travis tests pass.

@WardF
Copy link
Member Author

WardF commented Mar 4, 2016

Fix has been pushed into master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant