Bug 1186815
| Summary: | Make camel_stream_write() try to write all bytes at once | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Davide Repetto <red> |
| Component: | evolution-data-server | Assignee: | Milan Crha <mcrha> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 21 | CC: | gnouman786, lucilanga, mbarnes, mcrha, tpopela |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | evolution-data-server-3.12.11-4.fc21 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-02-09 12:04:31 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Davide Repetto
2015-01-28 15:14:07 UTC
(In reply to Davide Repetto from comment #0) > Steps to Reproduce: > =================== > 1. Set net.ipv4.tcp_wmem="4096 6144 8192" > 2. Set net.ipv4.tcp_rmem="4096 8192 16384" Thanks for a bug report and a way to reproduce it. I'd like to try it, but I'm unsure how to do that, specifically the above two steps, the same as how to revert the change back to "normal". Could you help me with that, please? Hi Milan, thanks for your reply. you can verify the current values with: ======================================= [root@dave ~]# sysctl net.ipv4.tcp_wmem net.ipv4.tcp_wmem = 4096 16384 4194304 # this is an example output [root@dave ~]# sysctl net.ipv4.tcp_rmem net.ipv4.tcp_rmem = 4096 87380 6291456 you can change them with: ========================= [root@dave ~]# sysctl net.ipv4.tcp_wmem="4096 6144 8192" net.ipv4.tcp_wmem = 4096 6144 8192 [root@dave ~]# sysctl net.ipv4.tcp_rmem="4096 8192 16384" net.ipv4.tcp_rmem = 4096 8192 16384 and revert them back with: ========================== [root@dave ~]# sysctl net.ipv4.tcp_wmem="4096 16384 4194304" net.ipv4.tcp_wmem = 4096 16384 4194304 [root@dave ~]# sysctl net.ipv4.tcp_rmem="4096 87380 6291456" net.ipv4.tcp_rmem = 4096 87380 6291456 All changes are ephemeral and won't survive a reboot. Also these commands work well within VMs, but not inside containers. So if you're using containers, consider that they inherit the TCP window settings from the host and that it is usually forbidden to change it from within the container. P.S. If needed I can provide a VM or remote access to it. Thanks for the guide. I managed to reproduce it too and found the cause. The problem was that the CamelStreamFilter::write() expected the underlying stream to write all bytes it asked it to write, but that failed at about 60% of the message write for me, it wrote only 3744 bytes, while requested was 4149 bytes. That's all valid (to not write all what it was asked to write), but the code didn't count with it. I checked also other usages of this API and there are more places which can fail in a similar way, thus I changed the core of the function to behave differently, rather than to take care of this in all places which call this API. Created commit bae0c64 in eds master (3.13.90+) [1] [1] https://git.gnome.org/browse/evolution-data-server/commit/?id=bae0c64 Got any idea when it should trickle down in fedora? The change missed the final 3.12.11 release today. The 3.13.90 will be released next Monday, when it will also reach rawhide. That means it's ready for the upcoming Fedora 22. I built a scratch evolution-data-server with that fix included for Fedora 21 for you at [1]. The build will be deleted automatically within the next few days. [1] http://koji.fedoraproject.org/koji/taskinfo?taskID=8874733 Thank you very much for the ad-hoc build. It's much appreciated. I decided to create a correct update of the evolution-data-server for Fedora 21, thus all users can benefit from it. evolution-data-server-3.12.11-4.fc21 has been submitted as an update for Fedora 21. https://admin.fedoraproject.org/updates/evolution-data-server-3.12.11-4.fc21 evolution-data-server-3.12.11-4.fc21 has been pushed to the Fedora 21 stable repository. If problems still persist, please make note of it in this bug report. |