ports/179268: [PATCH] www/trafficserver: Fix disk usage miscalculated
Hung-Yi Chen
gaod at hychen.org
Mon Jun 3 18:50:02 UTC 2013
>Number: 179268
>Category: ports
>Synopsis: [PATCH] www/trafficserver: Fix disk usage miscalculated
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Mon Jun 03 18:50:01 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Hung-Yi Chen
>Release: FreeBSD 9.1-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD cse.tw 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root at farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
FreeBSD miscalculates disk size based on config by 2x for file-based, and 16x for raw-based.
Apply upstream fix, see https://issues.apache.org/jira/browse/TS-1784.
>How-To-Repeat:
>Fix:
--- trafficserver.diff begins here ---
Index: www/trafficserver/Makefile
===================================================================
--- www/trafficserver/Makefile (revision 319796)
+++ www/trafficserver/Makefile (working copy)
@@ -7,6 +7,7 @@
PORTNAME= trafficserver
PORTVERSION= 3.2.4
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= APACHE/${PORTNAME}
Index: www/trafficserver/files/patch-iocore_cache_Store.cc
===================================================================
--- www/trafficserver/files/patch-iocore_cache_Store.cc (revision 0)
+++ www/trafficserver/files/patch-iocore_cache_Store.cc (working copy)
@@ -0,0 +1,29 @@
+--- iocore/cache/Store.cc.orig 2013-05-25 01:18:36.000000000 +0800
++++ iocore/cache/Store.cc 2013-05-25 01:20:00.000000000 +0800
+@@ -483,7 +483,9 @@
+ disk_id = devnum;
+
+ pathname = ats_strdup(an);
+- blocks = size / hw_sector_size;
++ // igalic: blocks = size / hw_sector_size; was wrong TS-1707
++ // This code needs refactoring to unify the code-paths which are equal across platforms.
++ blocks = size / STORE_BLOCK_SIZE;
+ file_pathname = !((s.st_mode & S_IFMT) == S_IFDIR);
+
+ // This is so FreeBSD admins don't worry about our malicious code creating boot sector viruses:
+@@ -583,6 +585,7 @@
+
+ pathname = ats_strdup(filename);
+ // is this right Seems like this should be size / hw_sector_size
++ // igalic: No. See TS-1707
+ blocks = size / STORE_BLOCK_SIZE;
+ file_pathname = !((s.st_mode & S_IFMT) == S_IFDIR);
+
+@@ -715,6 +718,7 @@
+ /* I don't know why I'm redefining blocks to be something that is quite
+ * possibly something other than the actual number of blocks, but the
+ * code for other arches seems to. Revisit this, perhaps. */
++ // igalic: No. See TS-1707
+ blocks = size / STORE_BLOCK_SIZE;
+
+ Debug("cache_init", "Span::init physical sectors %" PRId64 " total size %" PRId64 " geometry size %" PRId64 " store blocks %" PRId64 "",
--- trafficserver.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list