Bug 129170
| Summary: | crontab -e fails with editors which create a new copy of the file | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 3 | Reporter: | Kurtis D. Rader <krader> |
| Component: | crontabs | Assignee: | Jason Vas Dias <jvdias> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Brock Organ <borgan> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 3.0 | CC: | benl |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | vixie-cron-4.1-8 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2004-08-10 15:04:17 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 170445 | ||
Fixed in vixie-cron-4.1-8 . This bug is fixed with vixie-cron-4.1-8_EL3, available from: http://people.redhat.com/~jvdias/cron/RHEL-3 and should be considered for inclusion in RHEL-3-U7 . |
From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040615 Firefox/0.9 Description of problem: Certain editors save a file by creating a new file then renaming it. For example, gedit(1) uses a sequence of operations like this: open("/tmp/.gedit-save-6tmgT2", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = 20 umask(022) = 077 write(20, "X=y\nHOME=/home/krader\nPATH=/home"..., 211) = 211 close(20) = 0 rename("/tmp/crontab.14578", "/tmp/crontab.14578~") = 0 rename("/tmp/.gedit-save-6tmgT2", "/tmp/crontab.14578") = 0 But crontab(1) keeps a file descriptor open on the original temporary crontab file and uses fstat64(2) to see if it has changed: fstat64(5, {st_mode=S_IFREG|0600, st_size=207, ...}) = 0 write(2, "crontab: no changes made to cron"..., 36) = 36 Since the original crontab temporary file hasn't changed crontab(1) is technically correct that no changes were made. What gedit(1) is doing is perfectly valid. The fault lies with crontab(1) in my opinion. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. export VISUAL=gedit 2. crontab -e 3. Change the crontab, save it, and exit the editor Actual Results: The changes are not installed and the following is displayed: crontab: no changes made to crontab Expected Results: The changes are installed as the new crontab definition. Additional info: This has apparently been reported numerous times. For example, bugzilla #25992 and bugzilla #89899.