Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 129170 - crontab -e fails with editors which create a new copy of the file
Summary: crontab -e fails with editors which create a new copy of the file
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: crontabs
Version: 3.0
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Jason Vas Dias
QA Contact: Brock Organ
Depends On:
Blocks: 170445
TreeView+ depends on / blocked
Reported: 2004-08-04 18:20 UTC by Kurtis D. Rader
Modified: 2007-11-30 22:07 UTC (History)
1 user (show)

Fixed In Version: vixie-cron-4.1-8
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2004-08-10 15:04:17 UTC
Target Upstream Version:

Attachments (Terms of Use)

Description Kurtis D. Rader 2004-08-04 18:20:43 UTC
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:

        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:

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

    crontab: no changes made to crontab

Expected Results:  The changes are installed as the new crontab

Additional info:

This has apparently been reported numerous times. For example,
bugzilla #25992 and bugzilla #89899.

Comment 1 Jason Vas Dias 2004-08-10 15:04:17 UTC
Fixed in vixie-cron-4.1-8 .

Comment 2 Jason Vas Dias 2005-10-14 15:48:08 UTC
This bug is fixed with vixie-cron-4.1-8_EL3, available from:
and should be considered for inclusion in RHEL-3-U7 .

Note You need to log in before you can comment on or make changes to this bug.