Anonymous | Login | Signup for a new account | 12-17-2024 11:43 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0005202 | [Resin] | major | always | 08-30-12 22:45 | 08-31-12 10:48 | ||||
Reporter | ssmax | View Status | public | ||||||
Assigned To | ferg | ||||||||
Priority | normal | Resolution | fixed | Platform | |||||
Status | closed | OS | |||||||
Projection | none | OS Version | |||||||
ETA | none | Fixed in Version | 4.0.31 | Product Version | 4.0.29 | ||||
Product Build | |||||||||
Summary | 0005202: sendfile file permision error return 0 byte. | ||||||||
Description |
resin pro 4.0.29 --enable-64bit --enable-jni jdk: oracle java version "1.6.0_31" Java(TM) SE Runtime Environment (build 1.6.0_31-b04) Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode) os: centos 5.8 final kernel: 2.6.18-308.1.1.el5 / 2.6.18-308.13.1.el5 / etc.. start resin pro with config: setuid_user : nobody setuid_group : nobody sendfile : true visit the regular file using resin-file, for example: -rw-r--r-- 1 root root 14 Aug 31 12:20 /home/resin/webapps/ROOT/test.txt http://127.0.0.1/test.txt [^] if the file havn't the write permission for the user who start the resin, then http response will return the right length but 0 byte like : -------------------------- HTTP/1.1 200 OK Server: Resin/4.0.29 ETag: "CXpHhK1fUZd" Last-Modified: Fri, 31 Aug 2012 04:34:23 GMT Accept-Ranges: bytes Content-Type: text/plain; charset=utf-8 Content-Length: 14 Date: Fri, 31 Aug 2012 05:23:42 GMT (but nothing here , 0 byte) -------------------------- i trace down the code and found something strange here: resin-pro-4.0.29/modules/c/src/resin_os/jni_socket.c line 471 in jni_open_file block: flags = O_RDWR|O_CREAT; this set a read and write flag when opening the file, and sendfile will use this fd to send the file to the socket. fd = jni_open_file(env, name, name_length); .... result = sendfile(conn->fd, fd, &sendfile_offset, file_length); when operate the file which resin has no write permission, i guess there will be a problem here. so i edit the code like : flags = O_RDONLY; and recompile resin , start it with same config above. and everythig gets right. |
||||||||
Steps To Reproduce | |||||||||
Additional Information | |||||||||
Attached Files | |||||||||
|
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
29 total queries executed. 26 unique queries executed. |