[GH-ISSUE #601] Mac OS X Travis builds #339

Closed
opened 2026-03-04 01:44:31 +03:00 by kerem · 4 comments
Owner

Originally created by @gaul on GitHub (May 14, 2017).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/601

Presently Travis builds s3fs only on Ubuntu. Travis offers multiple OS builds which might allow us to test on Mac OS X as well:

https://docs.travis-ci.com/user/multi-os/

This would prevent regressions like #600. We might need to work with the Travis team to ensure that the osxfuse kext is installed.

Originally created by @gaul on GitHub (May 14, 2017). Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/601 Presently Travis builds s3fs only on Ubuntu. Travis offers multiple OS builds which might allow us to test on Mac OS X as well: https://docs.travis-ci.com/user/multi-os/ This would prevent regressions like #600. We might need to work with the Travis team to ensure that the osxfuse kext is installed.
kerem closed this issue 2026-03-04 01:44:31 +03:00
Author
Owner

@ggtakec commented on GitHub (Jun 27, 2017):

@andrewgaul I'm sorry for my late reply.

I tried to build/test s3fs on mac(osx) by travis-ci, but I had a problem about s3proxy.
Now it seems that travis-CI supports some OS X version(and xcode) but only java8 is installed for these.

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    1.8.0_112, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home

And home brew also no longer supports java7 because oracle moved it's download page behind the login page.

$ brew cask search java
==> Exact Match
java
==> Partial Matches
charles-applejava
charles-applejava-beta
eclipse-java
java-beta
java-jdk-javadoc
java6
java9-beta
netbeans-java-ee
netbeans-java-se
yourkit-java-profiler

Then I tried to run java6 on mac by travis, as usual s3proxy did not work.:-p

So I hope that s3proxy should require java8 for testing s3fs on mac(osx) by travis-ci,
I'd like to get your thoughts on it.

Thanks,

<!-- gh-comment-id:311343092 --> @ggtakec commented on GitHub (Jun 27, 2017): @andrewgaul I'm sorry for my late reply. I tried to build/test s3fs on mac(osx) by travis-ci, but I had a problem about s3proxy. Now it seems that travis-CI supports some OS X version(and xcode) but only java8 is installed for these. ``` $ /usr/libexec/java_home -V Matching Java Virtual Machines (1): 1.8.0_112, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home ``` And home brew also no longer supports java7 because oracle moved it's download page behind the login page. ``` $ brew cask search java ==> Exact Match java ==> Partial Matches charles-applejava charles-applejava-beta eclipse-java java-beta java-jdk-javadoc java6 java9-beta netbeans-java-ee netbeans-java-se yourkit-java-profiler ``` _Then I tried to run java6 on mac by travis, as usual s3proxy did not work.:-p_ So I hope that s3proxy should require java8 for testing s3fs on mac(osx) by travis-ci, I'd like to get your thoughts on it. Thanks,
Author
Owner

@gaul commented on GitHub (Jun 27, 2017):

S3Proxy should run with Java 7 or Java 8, although not Java 6 and not yet Java 9. Did you try Java 8?

<!-- gh-comment-id:311497120 --> @gaul commented on GitHub (Jun 27, 2017): S3Proxy should run with Java 7 or Java 8, although not Java 6 and not yet Java 9. Did you try Java 8?
Author
Owner

@ggtakec commented on GitHub (Jun 28, 2017):

@andrewgaul Thanks for your quickly reply.
And I'm sorry for misunderstanding about s3proxy.

Initially, I was testing the s3fs test with both xcode 8.3 and 7.3 images(These images have Java8).
However, communication between s3fs and s3proxy was connection refused and something was wrong.

I just tried reproducing it now.

s3proxy: I 06-28 12:39:06.406 main org.eclipse.jetty.util.log:186 |::] Logging initialized @7263ms
s3proxy: I 06-28 12:39:06.554 main o.eclipse.jetty.server.Server:327 |::] jetty-9.2.z-SNAPSHOT
s3proxy: I 06-28 12:39:07.058 main o.e.j.server.ServerConnector:266 |::] Started ServerConnector@7a1234bf{HTTP/1.1}{127.0.0.1:8080}
s3proxy: I 06-28 12:39:07.058 main o.eclipse.jetty.server.Server:379 |::] Started @7918ms

s3proxy seems to be running without any problems.
Even checking with the nc command seems to have no problem with connection.

Connection to 127.0.0.1 port 8080 [tcp/http-alt] succeeded!

However, s3fs receives "reset by peer" in communication with s3proxy.
After that, s3fs tries to reconnect, but it becomes "connection refused".
Then, the number of retries is reached and the test fails.

+stdbuf -oL -eL ../src/s3fs s3fs-integration-test s3fs-integration-test -o use_path_request_style -o url=http://127.0.0.1:8080 -o createbucket -o passwd_file=passwd-s3fs -o dbglevel=info -o retries=10 -o curldbg -f -o enable_content_md5 -o singlepart_copy_limit=10240
+stdbuf -oL -eL sed -u 's/^/s3fs: /'
s3fs: [CRT] s3fs.cpp:set_s3fs_log_level(257): change debug level from [CRT] to [INF] 
s3fs: [INF]     s3fs.cpp:set_mountpoint_attribute(4182): PROC(uid=501, gid=20) - MountPoint(uid=501, gid=20, mode=40755)
s3fs: [CRT] s3fs.cpp:s3fs_init(3367): init v1.82(commit:8fdfc2f) with OpenSSL
s3fs: [INF]     s3fs.cpp:do_create_bucket(884): /
s3fs: [INF]       curl.cpp:PutRequest(2693): [tpath=/]
s3fs: [INF]       curl.cpp:PutRequest(2710): create zero byte file object.
s3fs: [INF]       curl.cpp:prepare_url(4205): URL is http://127.0.0.1:8080/s3fs-integration-test/
s3fs: [INF]       curl.cpp:prepare_url(4237): URL changed is http://127.0.0.1:8080/s3fs-integration-test/
s3fs: [INF]       curl.cpp:insertV4Headers(2267): computing signature [PUT] [/] [] []
s3fs: [INF]       curl.cpp:url_to_host(100): url is http://127.0.0.1:8080
s3fs: [INF]       curl.cpp:PutRequest(2804): uploading... [path=/][fd=-1][size=0]
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> PUT /s3fs-integration-test/ HTTP/1.1
host: 127.0.0.1:8080
User-Agent: s3fs/1.82 (commit hash 8fdfc2f; OpenSSL)
Accept: */*
Authorization: AWS4-HMAC-SHA256 Credential=local-identity/20170628/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-acl;x-amz-content-sha256;x-amz-date, Signature=11559196add2de4976d6ece4ee6fe880a91e6c25504275277d2d3304b6a9b605
x-amz-acl: private
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20170628T123728Z
Content-Length: 0

* Recv failure: Connection reset by peer
* Curl_http_done: called premature == 1
* Closing connection 0
s3fs: [ERR] curl.cpp:RequestPerform(2015): ### CURLE_RECV_ERROR
* Hostname 127.0.0.1 was found in DNS cache
s3fs: [INF] curl.cpp:RequestPerform(2082): ### retrying...
*   Trying 127.0.0.1...
* TCP_NODELAY set
s3fs: [INF]       curl.cpp:RemakeHandle(1737): Retry request. [type=3][url=http://127.0.0.1:8080/s3fs-integration-test/][path=/]
* Connection failed
* connect to 127.0.0.1 port 8080 failed: Connection refused
* Failed to connect to 127.0.0.1 port 8080: Connection refused
* Closing connection 1
s3fs: [ERR] curl.cpp:RequestPerform(1989): ### CURLE_COULDNT_CONNECT

I was not sure what caused it, but I misunderstood that it must be java7.
I will continue to investigate this cause.
If you have advice on s3proxy's debug information etc.

Thanks in advance.

<!-- gh-comment-id:311651222 --> @ggtakec commented on GitHub (Jun 28, 2017): @andrewgaul Thanks for your quickly reply. And I'm sorry for misunderstanding about s3proxy. Initially, I was testing the s3fs test with both xcode 8.3 and 7.3 images(These images have Java8). However, communication between s3fs and s3proxy was connection refused and something was wrong. I just tried reproducing it now. ``` s3proxy: I 06-28 12:39:06.406 main org.eclipse.jetty.util.log:186 |::] Logging initialized @7263ms s3proxy: I 06-28 12:39:06.554 main o.eclipse.jetty.server.Server:327 |::] jetty-9.2.z-SNAPSHOT s3proxy: I 06-28 12:39:07.058 main o.e.j.server.ServerConnector:266 |::] Started ServerConnector@7a1234bf{HTTP/1.1}{127.0.0.1:8080} s3proxy: I 06-28 12:39:07.058 main o.eclipse.jetty.server.Server:379 |::] Started @7918ms ``` s3proxy seems to be running without any problems. Even checking with the nc command seems to have no problem with connection. ``` Connection to 127.0.0.1 port 8080 [tcp/http-alt] succeeded! ``` However, s3fs receives "reset by peer" in communication with s3proxy. After that, s3fs tries to reconnect, but it becomes "connection refused". Then, the number of retries is reached and the test fails. ``` +stdbuf -oL -eL ../src/s3fs s3fs-integration-test s3fs-integration-test -o use_path_request_style -o url=http://127.0.0.1:8080 -o createbucket -o passwd_file=passwd-s3fs -o dbglevel=info -o retries=10 -o curldbg -f -o enable_content_md5 -o singlepart_copy_limit=10240 +stdbuf -oL -eL sed -u 's/^/s3fs: /' s3fs: [CRT] s3fs.cpp:set_s3fs_log_level(257): change debug level from [CRT] to [INF] s3fs: [INF] s3fs.cpp:set_mountpoint_attribute(4182): PROC(uid=501, gid=20) - MountPoint(uid=501, gid=20, mode=40755) s3fs: [CRT] s3fs.cpp:s3fs_init(3367): init v1.82(commit:8fdfc2f) with OpenSSL s3fs: [INF] s3fs.cpp:do_create_bucket(884): / s3fs: [INF] curl.cpp:PutRequest(2693): [tpath=/] s3fs: [INF] curl.cpp:PutRequest(2710): create zero byte file object. s3fs: [INF] curl.cpp:prepare_url(4205): URL is http://127.0.0.1:8080/s3fs-integration-test/ s3fs: [INF] curl.cpp:prepare_url(4237): URL changed is http://127.0.0.1:8080/s3fs-integration-test/ s3fs: [INF] curl.cpp:insertV4Headers(2267): computing signature [PUT] [/] [] [] s3fs: [INF] curl.cpp:url_to_host(100): url is http://127.0.0.1:8080 s3fs: [INF] curl.cpp:PutRequest(2804): uploading... [path=/][fd=-1][size=0] * Trying 127.0.0.1... * TCP_NODELAY set * Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0) > PUT /s3fs-integration-test/ HTTP/1.1 host: 127.0.0.1:8080 User-Agent: s3fs/1.82 (commit hash 8fdfc2f; OpenSSL) Accept: */* Authorization: AWS4-HMAC-SHA256 Credential=local-identity/20170628/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-acl;x-amz-content-sha256;x-amz-date, Signature=11559196add2de4976d6ece4ee6fe880a91e6c25504275277d2d3304b6a9b605 x-amz-acl: private x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 x-amz-date: 20170628T123728Z Content-Length: 0 * Recv failure: Connection reset by peer * Curl_http_done: called premature == 1 * Closing connection 0 s3fs: [ERR] curl.cpp:RequestPerform(2015): ### CURLE_RECV_ERROR * Hostname 127.0.0.1 was found in DNS cache s3fs: [INF] curl.cpp:RequestPerform(2082): ### retrying... * Trying 127.0.0.1... * TCP_NODELAY set s3fs: [INF] curl.cpp:RemakeHandle(1737): Retry request. [type=3][url=http://127.0.0.1:8080/s3fs-integration-test/][path=/] * Connection failed * connect to 127.0.0.1 port 8080 failed: Connection refused * Failed to connect to 127.0.0.1 port 8080: Connection refused * Closing connection 1 s3fs: [ERR] curl.cpp:RequestPerform(1989): ### CURLE_COULDNT_CONNECT ``` I was not sure what caused it, but I misunderstood that it must be java7. I will continue to investigate this cause. If you have advice on s3proxy's debug information etc. Thanks in advance.
Author
Owner

@ggtakec commented on GitHub (Aug 11, 2017):

#630 changed the macosx branch so that it can support OSX in Travis CI multiple OS build.
And #631 has merged the macosx branch to master, I deleted the macosx branch.

This Issue closes, but if you find a problem please post a new Issue.

<!-- gh-comment-id:321843383 --> @ggtakec commented on GitHub (Aug 11, 2017): #630 changed the macosx branch so that it can support OSX in Travis CI multiple OS build. And #631 has merged the macosx branch to master, I deleted the macosx branch. This Issue closes, but if you find a problem please post a new Issue.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#339
No description provided.