2013-03-26 17:22:46 |
Ray Link |
bug |
|
|
added bug |
2013-03-26 18:55:26 |
Ray Link |
bug watch added |
|
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=704003 |
|
2013-08-08 16:21:43 |
Launchpad Janitor |
ifupdown (Ubuntu): status |
New |
Confirmed |
|
2013-08-20 20:13:05 |
Chris J Arges |
ifupdown (Ubuntu): assignee |
|
Chris J Arges (arges) |
|
2013-08-20 22:46:13 |
Chris J Arges |
nominated for series |
|
Ubuntu Precise |
|
2013-08-20 22:46:13 |
Chris J Arges |
bug task added |
|
ifupdown (Ubuntu Precise) |
|
2013-08-20 22:46:13 |
Chris J Arges |
nominated for series |
|
Ubuntu Quantal |
|
2013-08-20 22:46:13 |
Chris J Arges |
bug task added |
|
ifupdown (Ubuntu Quantal) |
|
2013-08-20 22:46:13 |
Chris J Arges |
nominated for series |
|
Ubuntu Saucy |
|
2013-08-20 22:46:13 |
Chris J Arges |
bug task added |
|
ifupdown (Ubuntu Saucy) |
|
2013-08-20 22:46:13 |
Chris J Arges |
nominated for series |
|
Ubuntu Raring |
|
2013-08-20 22:46:13 |
Chris J Arges |
bug task added |
|
ifupdown (Ubuntu Raring) |
|
2013-08-20 22:46:20 |
Chris J Arges |
ifupdown (Ubuntu Precise): assignee |
|
Chris J Arges (arges) |
|
2013-08-20 22:46:22 |
Chris J Arges |
ifupdown (Ubuntu Quantal): assignee |
|
Chris J Arges (arges) |
|
2013-08-20 22:46:24 |
Chris J Arges |
ifupdown (Ubuntu Raring): assignee |
|
Chris J Arges (arges) |
|
2013-08-20 22:46:29 |
Chris J Arges |
ifupdown (Ubuntu Raring): status |
New |
In Progress |
|
2013-08-20 22:46:32 |
Chris J Arges |
ifupdown (Ubuntu Saucy): status |
Confirmed |
In Progress |
|
2013-08-20 22:46:33 |
Chris J Arges |
ifupdown (Ubuntu Quantal): status |
New |
In Progress |
|
2013-08-20 22:46:35 |
Chris J Arges |
ifupdown (Ubuntu Precise): status |
New |
In Progress |
|
2013-08-20 22:46:37 |
Chris J Arges |
ifupdown (Ubuntu Precise): importance |
Undecided |
Medium |
|
2013-08-20 22:46:39 |
Chris J Arges |
ifupdown (Ubuntu Quantal): importance |
Undecided |
Medium |
|
2013-08-20 22:46:41 |
Chris J Arges |
ifupdown (Ubuntu Raring): importance |
Undecided |
Medium |
|
2013-08-20 22:46:42 |
Chris J Arges |
ifupdown (Ubuntu Saucy): importance |
Undecided |
Medium |
|
2013-08-21 12:59:36 |
Chris J Arges |
attachment added |
|
fix-lp1160490-precise.debdiff https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1160490/+attachment/3780574/+files/fix-lp1160490-precise.debdiff |
|
2013-08-21 12:59:49 |
Chris J Arges |
attachment added |
|
fix-lp1160490-quantal.debdiff https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1160490/+attachment/3780575/+files/fix-lp1160490-quantal.debdiff |
|
2013-08-21 13:00:02 |
Chris J Arges |
attachment added |
|
fix-lp1160490-raring.debdiff https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1160490/+attachment/3780576/+files/fix-lp1160490-raring.debdiff |
|
2013-08-21 13:01:00 |
Chris J Arges |
attachment added |
|
fix-lp1160490-saucy.debdiff https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/1160490/+attachment/3780577/+files/fix-lp1160490-saucy.debdiff |
|
2013-08-21 13:05:00 |
Chris J Arges |
bug |
|
|
added subscriber Ubuntu Sponsors Team |
2013-08-21 15:06:31 |
Chris J Arges |
description |
Ubuntu 12.04.2
ifupdown 0.7~beta2ubuntu8
Symptom: Every so often, /etc/init/network-interface.conf fails to bring up the loopback interface.
> Mar 25 16:39:37 XXXXXXXX kernel: [ 28.793922] init: network-interface (lo) pre-start process (1079) terminated with status 1
/var/log/upstart/network-interface-lo shows:
> ifup: failed to overwrite statefile /run/network/ifstate: No such file or directory
Relevant section of the ifup sources, in update_state():
if (rename (tmpstatefile, statefile)) {
fprintf(stderr,
"%s: failed to overwrite statefile %s: %s\n",
argv0, statefile, strerror(errno));
exit (1);
}
update_state() opens the statefile, gets a F_SETLKW lock on it, opens a tmpfile, filters the contents of the statefile into the tmpfile, closes the tmpfile, then renames the tempfile over the statefile.
Once the rename() happens in one instance of ifup, any other blocked instances are waiting around to lock a file that no longer exists in the filesystem. Overlap enough instances of ifup just right and you have them all locking different copies of statefile, which then doesn't prevent any of them from rename()ing tmpstatefile out from underneath the others, thus causing their own rename()s to fail with ENOENT.
Example:
Process A starts, opens statefile.
Process A locks statefile.
Process B starts, opens statefile.
Process B waits for lock on statefile.
Process A renames tmpstatefile to statefile and exits.
Process B acquires lock on *outdated* statefile FILE pointer.
Process C starts, opens current statefile (written by Process A).
Process C locks current statefile.
** Two ifups now have locks **
Process B renames tmpstatefile to statefile and exits.
Process C tries to rename tmpstatefile, fails because tmpstatefile has already been renamed out from under it by Process B.
NOTE: Since Process B was operating on an outdated statefile, it has also stomped over any changes made by Process A, so simply making the tmpstatefile process-specific to avoid rename()ing out from under each other won't help. |
SRU Justification:
[Impact]
* Users will occasionally see their network interfaces not come up due to race conditions.
[Test Case]
* See this comment: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/996369/comments/35
[Regression Potential]
* This fix backports a change from upstream ifupdown. Instead of locking a statefile it locks a lockfile.
--
Ubuntu 12.04.2
ifupdown 0.7~beta2ubuntu8
Symptom: Every so often, /etc/init/network-interface.conf fails to bring up the loopback interface.
> Mar 25 16:39:37 XXXXXXXX kernel: [ 28.793922] init: network-interface (lo) pre-start process (1079) terminated with status 1
/var/log/upstart/network-interface-lo shows:
> ifup: failed to overwrite statefile /run/network/ifstate: No such file or directory
Relevant section of the ifup sources, in update_state():
if (rename (tmpstatefile, statefile)) {
fprintf(stderr,
"%s: failed to overwrite statefile %s: %s\n",
argv0, statefile, strerror(errno));
exit (1);
}
update_state() opens the statefile, gets a F_SETLKW lock on it, opens a tmpfile, filters the contents of the statefile into the tmpfile, closes the tmpfile, then renames the tempfile over the statefile.
Once the rename() happens in one instance of ifup, any other blocked instances are waiting around to lock a file that no longer exists in the filesystem. Overlap enough instances of ifup just right and you have them all locking different copies of statefile, which then doesn't prevent any of them from rename()ing tmpstatefile out from underneath the others, thus causing their own rename()s to fail with ENOENT.
Example:
Process A starts, opens statefile.
Process A locks statefile.
Process B starts, opens statefile.
Process B waits for lock on statefile.
Process A renames tmpstatefile to statefile and exits.
Process B acquires lock on *outdated* statefile FILE pointer.
Process C starts, opens current statefile (written by Process A).
Process C locks current statefile.
** Two ifups now have locks **
Process B renames tmpstatefile to statefile and exits.
Process C tries to rename tmpstatefile, fails because tmpstatefile has already been renamed out from under it by Process B.
NOTE: Since Process B was operating on an outdated statefile, it has also stomped over any changes made by Process A, so simply making the tmpstatefile process-specific to avoid rename()ing out from under each other won't help. |
|
2013-08-21 15:06:52 |
Chris J Arges |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2013-09-02 08:44:28 |
Launchpad Janitor |
ifupdown (Ubuntu Saucy): status |
In Progress |
Fix Released |
|
2013-09-11 23:26:42 |
Steve Langasek |
ifupdown (Ubuntu Precise): status |
In Progress |
Fix Committed |
|
2013-09-11 23:26:50 |
Steve Langasek |
bug |
|
|
added subscriber SRU Verification |
2013-09-11 23:27:00 |
Steve Langasek |
tags |
|
verification-needed |
|
2013-09-11 23:28:42 |
Steve Langasek |
ifupdown (Ubuntu Quantal): status |
In Progress |
Fix Committed |
|
2013-09-11 23:44:23 |
Steve Langasek |
ifupdown (Ubuntu Raring): status |
In Progress |
Fix Committed |
|
2013-09-12 08:51:53 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/ifupdown |
|
2013-09-12 08:51:55 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/saucy-proposed/ifupdown |
|
2013-09-12 08:56:57 |
Launchpad Janitor |
branch linked |
|
lp:~ubuntu-branches/ubuntu/precise/ifupdown/precise-proposed |
|
2013-09-12 08:57:09 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/quantal-proposed/ifupdown |
|
2013-09-12 08:57:11 |
Launchpad Janitor |
branch linked |
|
lp:ubuntu/raring-proposed/ifupdown |
|
2013-09-12 20:35:19 |
Bryan Quigley |
tags |
verification-needed |
verification-done-precise verification-needed |
|
2013-09-13 01:30:11 |
Bryan Quigley |
tags |
verification-done-precise verification-needed |
verification-done-precise verification-done-quantal verification-needed |
|
2013-09-16 15:29:32 |
Scott Moser |
description |
SRU Justification:
[Impact]
* Users will occasionally see their network interfaces not come up due to race conditions.
[Test Case]
* See this comment: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/996369/comments/35
[Regression Potential]
* This fix backports a change from upstream ifupdown. Instead of locking a statefile it locks a lockfile.
--
Ubuntu 12.04.2
ifupdown 0.7~beta2ubuntu8
Symptom: Every so often, /etc/init/network-interface.conf fails to bring up the loopback interface.
> Mar 25 16:39:37 XXXXXXXX kernel: [ 28.793922] init: network-interface (lo) pre-start process (1079) terminated with status 1
/var/log/upstart/network-interface-lo shows:
> ifup: failed to overwrite statefile /run/network/ifstate: No such file or directory
Relevant section of the ifup sources, in update_state():
if (rename (tmpstatefile, statefile)) {
fprintf(stderr,
"%s: failed to overwrite statefile %s: %s\n",
argv0, statefile, strerror(errno));
exit (1);
}
update_state() opens the statefile, gets a F_SETLKW lock on it, opens a tmpfile, filters the contents of the statefile into the tmpfile, closes the tmpfile, then renames the tempfile over the statefile.
Once the rename() happens in one instance of ifup, any other blocked instances are waiting around to lock a file that no longer exists in the filesystem. Overlap enough instances of ifup just right and you have them all locking different copies of statefile, which then doesn't prevent any of them from rename()ing tmpstatefile out from underneath the others, thus causing their own rename()s to fail with ENOENT.
Example:
Process A starts, opens statefile.
Process A locks statefile.
Process B starts, opens statefile.
Process B waits for lock on statefile.
Process A renames tmpstatefile to statefile and exits.
Process B acquires lock on *outdated* statefile FILE pointer.
Process C starts, opens current statefile (written by Process A).
Process C locks current statefile.
** Two ifups now have locks **
Process B renames tmpstatefile to statefile and exits.
Process C tries to rename tmpstatefile, fails because tmpstatefile has already been renamed out from under it by Process B.
NOTE: Since Process B was operating on an outdated statefile, it has also stomped over any changes made by Process A, so simply making the tmpstatefile process-specific to avoid rename()ing out from under each other won't help. |
SRU Justification:
[Impact]
* Users will occasionally see their network interfaces not come up due to race conditions.
[Test Case]
* See this comment: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/996369/comments/35
[Regression Potential]
* This fix backports a change from upstream ifupdown. Instead of locking a statefile it locks a lockfile.
--
Ubuntu 12.04.2
ifupdown 0.7~beta2ubuntu8
Symptom: Every so often, /etc/init/network-interface.conf fails to bring up the loopback interface.
> Mar 25 16:39:37 XXXXXXXX kernel: [ 28.793922] init: network-interface (lo) pre-start process (1079) terminated with status 1
/var/log/upstart/network-interface-lo shows:
> ifup: failed to overwrite statefile /run/network/ifstate: No such file or directory
Relevant section of the ifup sources, in update_state():
if (rename (tmpstatefile, statefile)) {
fprintf(stderr,
"%s: failed to overwrite statefile %s: %s\n",
argv0, statefile, strerror(errno));
exit (1);
}
update_state() opens the statefile, gets a F_SETLKW lock on it, opens a tmpfile, filters the contents of the statefile into the tmpfile, closes the tmpfile, then renames the tempfile over the statefile.
Once the rename() happens in one instance of ifup, any other blocked instances are waiting around to lock a file that no longer exists in the filesystem. Overlap enough instances of ifup just right and you have them all locking different copies of statefile, which then doesn't prevent any of them from rename()ing tmpstatefile out from underneath the others, thus causing their own rename()s to fail with ENOENT.
Example:
Process A starts, opens statefile.
Process A locks statefile.
Process B starts, opens statefile.
Process B waits for lock on statefile.
Process A renames tmpstatefile to statefile and exits.
Process B acquires lock on *outdated* statefile FILE pointer.
Process C starts, opens current statefile (written by Process A).
Process C locks current statefile.
** Two ifups now have locks **
Process B renames tmpstatefile to statefile and exits.
Process C tries to rename tmpstatefile, fails because tmpstatefile has already been renamed out from under it by Process B.
NOTE: Since Process B was operating on an outdated statefile, it has also stomped over any changes made by Process A, so simply making the tmpstatefile process-specific to avoid rename()ing out from under each other won't help.
Related bugs:
* bug 1226067: ifquery fails with bad file descriptor |
|
2013-09-16 16:16:57 |
Scott Moser |
tags |
verification-done-precise verification-done-quantal verification-needed |
verification-failed-precise verification-failed-quantal verification-failed-raring verification-needed |
|
2013-09-16 18:10:13 |
Nobuto Murata |
bug |
|
|
added subscriber Nobuto MURATA |
2013-09-20 20:39:04 |
Brian Murray |
removed subscriber Ubuntu Sponsors Team |
|
|
|
2013-09-23 22:02:45 |
Bryan Quigley |
tags |
verification-failed-precise verification-failed-quantal verification-failed-raring verification-needed |
verification-done-precise verification-failed-quantal verification-failed-raring verification-needed |
|
2013-09-24 01:04:40 |
Bryan Quigley |
tags |
verification-done-precise verification-failed-quantal verification-failed-raring verification-needed |
verification-done-precise verification-done-raring verification-failed-quantal verification-needed |
|
2013-09-24 03:03:35 |
Bryan Quigley |
tags |
verification-done-precise verification-done-raring verification-failed-quantal verification-needed |
verification-done-precise verification-done-quantal verification-done-raring |
|
2013-10-03 19:35:59 |
Launchpad Janitor |
ifupdown (Ubuntu Raring): status |
Fix Committed |
Fix Released |
|
2013-10-03 19:36:06 |
Brian Murray |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2013-10-03 19:38:18 |
Launchpad Janitor |
ifupdown (Ubuntu Quantal): status |
Fix Committed |
Fix Released |
|
2013-10-03 19:40:47 |
Launchpad Janitor |
ifupdown (Ubuntu Precise): status |
Fix Committed |
Fix Released |
|