After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 663637 - brasero claims dvd image is too large for disc
brasero claims dvd image is too large for disc
Status: RESOLVED OBSOLETE
Product: brasero
Classification: Applications
Component: libbrasero-burn
3.2.x
Other Linux
: Normal normal
: ---
Assigned To: Brasero maintainer(s)
Brasero maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2011-11-08 16:09 UTC by David Balažic
Modified: 2018-09-21 17:31 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description David Balažic 2011-11-08 16:09:09 UTC
https://bugs.launchpad.net/ubuntu/+source/brasero/+bug/658004

Brasero claims an iso file is too large for the disc.
The inserted disc is a blanked DVD+RW.
The iso file is 4,700,372,992 bytes big, which is the official capacity of DVD+RW discs (as per wikipedia and other sources).

What I did:
 - insert a DVD+RW with content
 - cp /dev/sr0 dvd.iso
 - check dvd.iso size to be 4,700,372,992 bytes
 - right click dvd.iso and select Write to Disc...

Result:
The brasero/nautilus dialog claims: The data size is too large for the disc even with the overburn option.



Quick test file: touch test.iso && teuncate -s 4700372992 test.iso


The error seems to be in the file libbrasero-burn/brasero-session-cfg.c function brasero_session_cfg_check_size() line 873:

 BRASERO_BURN_LOG ("Session size %lli/Disc size %lli",
     priv->session_blocks,
     priv->disc_size);

 if (priv->session_blocks < priv->disc_size) { // line 873
  priv->is_valid = BRASERO_SESSION_VALID;
  return BRASERO_SESSION_VALID;
 }

The log output says:
BraseroBurn: (at brasero-session-cfg.c :871) Session size 2295104/Disc size 2295104

So there is enough space, but the code expects _more_ than enough space. The correct check would be:

 if (priv->session_blocks <= priv->disc_size) { // fixed line 873
Comment 1 David Balažic 2011-11-08 16:11:16 UTC
typo: "teuncate" is of course "truncate"
Comment 2 Sebastien Bacher 2011-11-30 16:17:51 UTC
There is a similar bug on https://bugs.launchpad.net/ubuntu/+source/brasero/+bug/897550

"Starting in 11.10 nautilus reports file (iso) size in actual GB, but brasero incorrectly uses 4.3 GB as the capacity of a dvd -r

The actual numbers of a dvd -r are
available space - 4,706,074,624 bytes/2,297,888 sectors/4.7GB/4.38GIB
So an iso that is near the true max file size of a dvd -r, while it will fit , is now rejected by brasero as being to large for the media

Ex. - have an iso that can and has been burned to dvd -r

Actual size - 4,691,394,560 bytes
Nautilus/properties reports - 4.7 GB (4,691,394,560 bytes)
Brasero shows iso size as 4.7 GB, media capacity as 4.3 GB, refuses to burn

(as a comparison a dvd burner, ImgBurn, that just uses bytes/sectors for filesize & media avaialble space shows this & will burn
iso size - 4,691,394,560 bytes/2.290.520 sectors : dvd -r media - Free Sectors: 2,297,888 ; Free Space: 4,706,074,624 bytes

K3b use GIB so it also has no problems burning the above mentioned iso

So it would seem brasero, gnome/nautilus, ubuntu need to get on the same page here & brasero needs to use the same method for both filesize & media capacity, either GB or GIB"
Comment 3 David Balažic 2012-11-10 23:11:41 UTC
Bug still unfixed, tested 3.4.1-0ubuntu2 on Ubuntu 12.10 and looked at the source code in the repository trunk.
Comment 4 Sebastien Bacher 2012-11-16 11:33:16 UTC
David Balažic wrote on https://bugs.launchpad.net/ubuntu/+source/brasero/+bug/658004/comments/8

"The error seems to be in the file libbrasero-burn/brasero-session-cfg.c function brasero_session_cfg_check_size() line 873:

 BRASERO_BURN_LOG ("Session size %lli/Disc size %lli",
     priv->session_blocks,
     priv->disc_size);

 if (priv->session_blocks < priv->disc_size) { // line 873
  priv->is_valid = BRASERO_SESSION_VALID;
  return BRASERO_SESSION_VALID;
 }

The log output says:
BraseroBurn: (at brasero-session-cfg.c :871) Session size 2295104/Disc size 2295104

So there is enough space, but the code expects _more_ than enough space. The correct check would be:

 if (priv->session_blocks <= priv->disc_size) { // fixed line 873"


Diff including that change: https://launchpadlibrarian.net/122881328/session_size_bug.diff
Comment 5 Felix Schwarz 2015-08-08 20:47:50 UTC
It seems that the fix still applies to the most recent brasero (and is shipped by Ubuntu for some years already) so I guess it could be added quite easily?
Comment 6 GNOME Infrastructure Team 2018-09-21 17:31:34 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/brasero/issues/211.