|
Bugzilla – Full Text Bug Listing |
| Summary: | SCR::Read( .target.stat, ...) and SCR::Read(.target.size, ...) fail on large files | ||
|---|---|---|---|
| Product: | [openSUSE] SUSE LINUX 10.0 | Reporter: | Thomas Fehr <fehr> |
| Component: | YaST2 | Assignee: | Klaus Kämpf <kkaempf> |
| Status: | RESOLVED FIXED | QA Contact: | Klaus Kämpf <kkaempf> |
| Severity: | Critical | ||
| Priority: | P5 - None | CC: | jsrain, mvidner |
| Version: | Beta 4 Plus | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | All | ||
| Whiteboard: | |||
| Found By: | Other | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Bug Depends on: | |||
| Bug Blocks: | 113322 | ||
I'll check Hmm, SystemAgent uses the st_size property of 'struct stat' and converts it to a YCPInteger (which is implemented as 'long long') Looks like we have to use 'struct stat64' here ... This should fix it: Index: configure.in.in =================================================================== --- configure.in.in (revision 25391) +++ configure.in.in (working copy) @@ -2,6 +2,8 @@ ## initialize @YAST2-INIT-COMMON@ +AC_SYS_LARGEFILE + @YAST2-INIT-PROGRAM@ ## special stuff submitted to svn, as yast2-core 2.12.24 will add a testcase later adding AC_SYS_LARGEFILE might also be valid for yast2-devtools when creating configure.in testcase added now. submitted as 2.12.25 |
Hi, Apparently SCR::Read(.target.size, ... ) amd SCR::Read(.target.stat, ... ) fail if the pathname points to a file larger than 4 Gigabyte. This makes my check for existence of crypto files fail when the crypto file is large (se bugzilla #113322) Since .target.size and .target.stat are used in many places I consider this critical. The following small ycp file: { integer tmp = (integer)SCR::Read(.target.size, "/tmp/crfile"); y2milestone( "size=%1", tmp ); map stat = (map)SCR::Read(.target.stat, "/tmp/crfile"); y2milestone( "stat=%1", stat ); } logs the following if "/tmp/crfile" is larger than 4 Gigabyte: 2005-09-06 13:00:56 <1> Lagrange(10580) [YCP] ycp/emil18.ycp:3 size=-1 2005-09-06 13:00:56 <1> Lagrange(10580) [YCP] ycp/emil18.ycp:5 stat=$[] but works file if "/tmp/crfile" is smaller: 2005-09-06 13:11:49 <1> Lagrange(10622) [YCP] ycp/emil18.ycp:3 size=104857600 2005-09-06 13:11:49 <1> Lagrange(10622) [YCP] ycp/emil18.ycp:5 stat=$["atime":1126004551, "ctime":1126004551, "gid":0, "inode":17500, "isblock":false, "ischr":false, "isdir":false, "isfifo":false, "islink":false, "isreg":true, "issock":false, "mtime":1126004551, "nlink":1, "size":104857600, "uid":0]