lpereira / lwan

Experimental, scalable, high performance HTTP server
https://lwan.ws
GNU General Public License v2.0
5.94k stars 548 forks source link

Could not drop capabilities: Invalid argument (error number 22) #262

Closed petermp79 closed 4 years ago

petermp79 commented 5 years ago

I ran into this error after build and load with original lwan.conf. Did I miss something?

localhost:/briteFaaS/runtime/lwan# ./build/src/bin/testrunner/testrunner Loading configuration file: testrunner.conf Could not drop capabilities: Invalid argument (error number 22)

lpereira commented 5 years ago

What's the OS and version?

On Tue, Jan 22, 2019, 11:54 petermp79 notifications@github.com wrote:

I ran into this error after build and load with original lwan.conf. Did I miss something?

localhost:/briteFaaS/runtime/lwan# ./build/src/bin/testrunner/testrunner Loading configuration file: testrunner.conf Could not drop capabilities: Invalid argument (error number 22)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/lpereira/lwan/issues/262, or mute the thread https://github.com/notifications/unsubscribe-auth/AAA6mQJdOJ_ftOCZhqioS5D-PnbrY1wcks5vF2xngaJpZM4aNZua .

petermp79 commented 5 years ago

Alpine Linux. Linux localhost 4.14.55-84.37.amzn2.x86_64 on a Dell desktop with Intel CPU. lwan library was built and put in lib64.

petermp79 commented 5 years ago

I don't know why Lwan was built the library for lib64 on alpine. I commented out straitjacket from the configuration, but it ran into socket bind issue.

On ubuntu linux 16.04, Lwan build was built for lib and this version works fine.

Have Lwan every been built on Alpine linux before?

lpereira commented 5 years ago

Yes, there's a package for it in testing. I regularly build on Alpine, too, because it's easier to test it against musl. But I haven't updated my Alpine system in a while, to test against a newer kernel.

What socket bind issue have you found?

In any case, building for lib or lib64 shouldn't make any difference regarding the software working or not on your system; in fact, this might affect more installing stuff than running Lwan built right out of the build directory. The library installatoin path is chosen by CMake's builtin GNUInstallDirs module... there's nothing Alpine-specific in Lwan.

lpereira commented 5 years ago

While I was able to reproduce the capabilities error, I wasn't able to reproduce the socket bind issue after commenting the straitjacket section in the configuration file. Something that might be the case here is that you have another server listening on TCP port 8080.

lpereira commented 5 years ago

OK, found the issue. Will send a patch fixing it soon.

lpereira commented 5 years ago

Without digging in further, I don't know what's happening here. capset() is being called with an empty capability set; yet, strace reveals that it's not the case. In the meantime, please either disable straitjacket, or instantiate it with the drop_capabilities setting set to false.

petermp79 commented 5 years ago

I got error code 22 or 14 from bind failure no matter what port i set.

I then rebuild lwan on ubuntu and found lwan works normally. The only difference is build on alpine produced lib64. But you said it makes no diiferent.

On Wed, Jan 23, 2019 at 8:09 AM Leandro A. F. Pereira < notifications@github.com> wrote:

Without digging in further, I don't know what's happening here. capset() is being called with an empty capability set; yet, strace reveals that it's not the case. In the meantime, please either disable straitjacket, or instantiate it with the drop_capabilities setting set to false.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lpereira/lwan/issues/262#issuecomment-456861789, or mute the thread https://github.com/notifications/unsubscribe-auth/AqMrcmIGek9OhK0Wbq7H4vM3bk-GbKccks5vGIlVgaJpZM4aNZua .

--

Confidentiality Notice: This communication and any attachments are intended solely for the addressee(s) named above and may contain confidential and legally privileged information. Unauthorized use, disclosure or copying is prohibited. If you have received this communication in error, please notify the sender immediately by replying to this communication and then deleting it from your system. Thank you.

This electronic communication is covered by the Electronic Communications Privacy Act of 1986, Codified at 18 U.S.C. §§ 1367, 2510-2521, 2701-2710, 3121-3126.Also, see: http://www.ftc.gov/privacy/glbact/glbsub1.htm - Gramm-Leach-Bliley Act 15 USC, Subchapter I, Sec. 6801-6809

petermp79 commented 5 years ago

More specific. Bind error print out is bad address.

On Wed, Jan 23, 2019 at 8:50 AM Peter Pham peter.manh.pham@gmail.com wrote:

I got error code 22 or 14 from bind failure no matter what port i set.

I then rebuild lwan on ubuntu and found lwan works normally. The only difference is build on alpine produced lib64. But you said it makes no diiferent.

On Wed, Jan 23, 2019 at 8:09 AM Leandro A. F. Pereira < notifications@github.com> wrote:

Without digging in further, I don't know what's happening here. capset() is being called with an empty capability set; yet, strace reveals that it's not the case. In the meantime, please either disable straitjacket, or instantiate it with the drop_capabilities setting set to false.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/lpereira/lwan/issues/262#issuecomment-456861789, or mute the thread https://github.com/notifications/unsubscribe-auth/AqMrcmIGek9OhK0Wbq7H4vM3bk-GbKccks5vGIlVgaJpZM4aNZua .

--

Confidentiality Notice: This communication and any attachments are intended solely for the addressee(s) named above and may contain confidential and legally privileged information. Unauthorized use, disclosure or copying is prohibited. If you have received this communication in error, please notify the sender immediately by replying to this communication and then deleting it from your system. Thank you.

This electronic communication is covered by the Electronic Communications Privacy Act of 1986, Codified at 18 U.S.C. §§ 1367, 2510-2521, 2701-2710, 3121-3126.Also, see: http://www.ftc.gov/privacy/glbact/glbsub1.htm - Gramm-Leach-Bliley Act 15 USC, Subchapter I, Sec. 6801-6809

--

Confidentiality Notice: This communication and any attachments are intended solely for the addressee(s) named above and may contain confidential and legally privileged information. Unauthorized use, disclosure or copying is prohibited. If you have received this communication in error, please notify the sender immediately by replying to this communication and then deleting it from your system. Thank you.

This electronic communication is covered by the Electronic Communications Privacy Act of 1986, Codified at 18 U.S.C. §§ 1367, 2510-2521, 2701-2710, 3121-3126.Also, see: http://www.ftc.gov/privacy/glbact/glbsub1.htm - Gramm-Leach-Bliley Act 15 USC, Subchapter I, Sec. 6801-6809

petermp79 commented 5 years ago

I think I finally got it working now after setting the default drop_capabilities to false and changing the port setting in testrunner.conf. You were right 8080 was used by another server. I will do more testing and if you dont heard any more from me, it means it is working perfectly :)

Thank you very much for your input.

lpereira commented 4 years ago

Closing this issue as it seems to be solved for over a year.