Bug 1445219

Summary: [RFE] Add rock cache directive to squid
Product: Red Hat Enterprise Linux 7 Reporter: Muhammad Azhar Shaikh <mdshaikh>
Component: squidAssignee: Luboš Uhliarik <luhliari>
Status: CLOSED ERRATA QA Contact: Jan Houska <jhouska>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: dale.lobb, eduardo, jhouska, jorton, ovasik
Target Milestone: rcKeywords: FutureFeature
Target Release: 7.4   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: squid-3.5.20-10.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 21:35:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Muhammad Azhar Shaikh 2017-04-25 09:40:22 UTC
Description of problem:
The rock cache store is not comiled into RHEL7/Squid


Version-Release number of selected component (if applicable):
Red Hat Enterprise Linux Server release 7.3 (Maipo)
squid-3.5.20-2.el7_3.3.x86_64


How reproducible:

Steps to Reproduce:
1. Add below lined to squid.conf
  cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=1024  max-size=1024  max-size=1024
  cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=4096  min-size=1025  max-size=4096
  cache_dir rock /var/spool/squid/cache/cache2  1024 slot-size=16384 min-size=4097  max-size=16384
  cache_dir rock /var/spool/squid/cache/cache3  1024 slot-size=32768 min-size=16385 max-size=32768
  cache_dir rock /var/spool/squid/cache/cache4  8192 slot-size=32768 min-size=32769 max-size=33554432

2. Restart squid


Actual results:
  2017/04/23 23:39:08| Processing: cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=1024  max-size=1024  max-size=1024
  2017/04/23 23:39:08| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
  2017/04/23 23:39:08| Processing: cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=4096  min-size=1025  max-size=4096
  2017/04/23 23:39:08| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
  2017/04/23 23:39:08| Processing: cache_dir rock /var/spool/squid/cache/cache2  1024 slot-size=16384 min-size=4097  max-size=16384
  2017/04/23 23:39:08| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
  2017/04/23 23:39:08| Processing: cache_dir rock /var/spool/squid/cache/cache3  1024 slot-size=32768 min-size=16385 max-size=32768
  2017/04/23 23:39:08| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
  2017/04/23 23:39:08| Processing: cache_dir rock /var/spool/squid/cache/cache4  8192 slot-size=32768 min-size=32769 max-size=33554432
  2017/04/23 23:39:08| ERROR: This proxy does not support the 'rock' cache type. Ignoring.

Expected results:
There should be no error message logged aftercompiling 


Additional info:

# squid -v

    from the RH 3.5.20 release:  '--enable-storeio=aufs,diskd,ufs'

    from a locally source downloaded and compiled 3.3.13 release:   '--enable-storeio=aufs,diskd,rock,ufs'


# less /usr/share/doc/squid-3.5.20/ChangeLog
  Changes to squid-3.2.0.13 (14 Oct 2011):
  - Support SMP worker shared disk cache (rock)          <<<<------------



# less /usr/share/doc/squid-3.5.20/squid.conf.documented

  #       ====  The rock store type  ====
  #
  #       Usage:
  #           cache_dir rock Directory-Name Mbytes [options]

Comment 5 Jan Houska 2017-05-05 22:53:41 UTC
Verified:

New PASS:
squid-3.5.20-10.el7.x86_64


# squid -X 
...
2017/05/05 18:48:50.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=1024  max-size=1024  max-size=1024
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'slot-size'='1024'
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'max-size'='1024'
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'max-size'='1024'
2017/05/05 18:48:50.401| 24,7| SBuf.cc(192) rawSpace: reserving 1 for SBuf5
2017/05/05 18:48:50.401| 24,8| SBuf.cc(955) cow: SBuf5 new size:6
2017/05/05 18:48:50.401| 24,8| SBuf.cc(925) reAlloc: SBuf5 new size: 6
2017/05/05 18:48:50.401| 24,9| MemBlob.cc(57) MemBlob: constructed, this=0x5620221008d0 id=blob70 reserveSize=6
2017/05/05 18:48:50.401| 24,8| MemBlob.cc(102) memAlloc: blob70 memAlloc: requested=6, received=40
2017/05/05 18:48:50.401| 24,9| MemBlob.cc(83) ~MemBlob: destructed, this=0x5620220fea20 id=blob69 capacity=40 size=6
2017/05/05 18:48:50.401| 24,7| SBuf.cc(934) reAlloc: SBuf5 new store capacity: 40
2017/05/05 18:48:50.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=4096  min-size=1025  max-size=4096
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'slot-size'='4096'
2017/05/05 18:48:50.401| WARNING: cache_dir /var/spool/squid/cache/cache1 slot-size cannot be changed dynamically, value left unchanged: 1024
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'min-size'='1025'
2017/05/05 18:48:50.401| cache_dir '/var/spool/squid/cache/cache1' object min-size now 1025 Bytes
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'max-size'='4096'
2017/05/05 18:48:50.401| cache_dir '/var/spool/squid/cache/cache1' object max-size now 4096 Bytes
2017/05/05 18:48:50.401| 24,7| SBuf.cc(192) rawSpace: reserving 1 for SBuf5
2017/05/05 18:48:50.401| 24,8| SBuf.cc(955) cow: SBuf5 new size:6
2017/05/05 18:48:50.401| 24,8| SBuf.cc(925) reAlloc: SBuf5 new size: 6
2017/05/05 18:48:50.401| 24,9| MemBlob.cc(57) MemBlob: constructed, this=0x5620220fea20 id=blob71 reserveSize=6
2017/05/05 18:48:50.401| 24,8| MemBlob.cc(102) memAlloc: blob71 memAlloc: requested=6, received=40
2017/05/05 18:48:50.401| 24,9| MemBlob.cc(83) ~MemBlob: destructed, this=0x5620221008d0 id=blob70 capacity=40 size=6
2017/05/05 18:48:50.401| 24,7| SBuf.cc(934) reAlloc: SBuf5 new store capacity: 40
2017/05/05 18:48:50.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache2  1024 slot-size=16384 min-size=4097  max-size=16384
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'slot-size'='16384'
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'min-size'='4097'
2017/05/05 18:48:50.401| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'max-size'='16384'
2017/05/05 18:48:50.401| 24,7| SBuf.cc(192) rawSpace: reserving 1 for SBuf5
2017/05/05 18:48:50.402| 24,8| SBuf.cc(955) cow: SBuf5 new size:6
2017/05/05 18:48:50.402| 24,8| SBuf.cc(925) reAlloc: SBuf5 new size: 6
2017/05/05 18:48:50.402| 24,9| MemBlob.cc(57) MemBlob: constructed, this=0x5620221008d0 id=blob72 reserveSize=6
2017/05/05 18:48:50.402| 24,8| MemBlob.cc(102) memAlloc: blob72 memAlloc: requested=6, received=40
2017/05/05 18:48:50.402| 24,9| MemBlob.cc(83) ~MemBlob: destructed, this=0x5620220fea20 id=blob71 capacity=40 size=6
2017/05/05 18:48:50.402| 24,7| SBuf.cc(934) reAlloc: SBuf5 new store capacity: 40
2017/05/05 18:48:50.402| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache3  1024 slot-size=32768 min-size=16385 max-size=32768
2017/05/05 18:48:50.402| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'slot-size'='32768'
2017/05/05 18:48:50.402| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'min-size'='16385'
2017/05/05 18:48:50.402| 3,2| SwapDir.cc(266) parseOptions: SwapDir::parseOptions: parsing store option 'max-size'='32768'
...

old fail:
squid-3.5.20-2.el7_3.3.x86_64

# squid -X 
...
2017/05/05 18:32:48.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=1024  max-size=1024  max-size=1024
2017/05/05 18:32:48.401| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
2017/05/05 18:32:48.401| 24,7| SBuf.cc(192) rawSpace: reserving 1 for SBuf5
2017/05/05 18:32:48.401| 24,8| SBuf.cc(955) cow: SBuf5 new size:6
2017/05/05 18:32:48.401| 24,8| SBuf.cc(925) reAlloc: SBuf5 new size: 6
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(57) MemBlob: constructed, this=0x7fda279337f0 id=blob70 reserveSize=6
2017/05/05 18:32:48.401| 24,8| MemBlob.cc(102) memAlloc: blob70 memAlloc: requested=6, received=40
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(83) ~MemBlob: destructed, this=0x7fda27932a20 id=blob69 capacity=40 size=6
2017/05/05 18:32:48.401| 24,7| SBuf.cc(934) reAlloc: SBuf5 new store capacity: 40
2017/05/05 18:32:48.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache1  1024 slot-size=4096  min-size=1025  max-size=4096
...
2017/05/05 18:32:48.401| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
2017/05/05 18:32:48.401| 24,7| SBuf.cc(192) rawSpace: reserving 1 for SBuf5
2017/05/05 18:32:48.401| 24,8| SBuf.cc(955) cow: SBuf5 new size:6
2017/05/05 18:32:48.401| 24,8| SBuf.cc(925) reAlloc: SBuf5 new size: 6
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(57) MemBlob: constructed, this=0x7fda27932a20 id=blob71 reserveSize=6
2017/05/05 18:32:48.401| 24,8| MemBlob.cc(102) memAlloc: blob71 memAlloc: requested=6, received=40
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(83) ~MemBlob: destructed, this=0x7fda279337f0 id=blob70 capacity=40 size=6
2017/05/05 18:32:48.401| 24,7| SBuf.cc(934) reAlloc: SBuf5 new store capacity: 40
2017/05/05 18:32:48.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache2  1024 slot-size=16384 min-size=4097  max-size=16384
2017/05/05 18:32:48.401| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
2017/05/05 18:32:48.401| 24,7| SBuf.cc(192) rawSpace: reserving 1 for SBuf5
2017/05/05 18:32:48.401| 24,8| SBuf.cc(955) cow: SBuf5 new size:6
2017/05/05 18:32:48.401| 24,8| SBuf.cc(925) reAlloc: SBuf5 new size: 6
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(57) MemBlob: constructed, this=0x7fda279337f0 id=blob72 reserveSize=6
2017/05/05 18:32:48.401| 24,8| MemBlob.cc(102) memAlloc: blob72 memAlloc: requested=6, received=40
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(83) ~MemBlob: destructed, this=0x7fda27932a20 id=blob71 capacity=40 size=6
2017/05/05 18:32:48.401| 24,7| SBuf.cc(934) reAlloc: SBuf5 new store capacity: 40
2017/05/05 18:32:48.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache3  1024 slot-size=32768 min-size=16385 max-size=32768
2017/05/05 18:32:48.401| ERROR: This proxy does not support the 'rock' cache type. Ignoring.
2017/05/05 18:32:48.401| 24,7| SBuf.cc(192) rawSpace: reserving 1 for SBuf5
2017/05/05 18:32:48.401| 24,8| SBuf.cc(955) cow: SBuf5 new size:6
2017/05/05 18:32:48.401| 24,8| SBuf.cc(925) reAlloc: SBuf5 new size: 6
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(57) MemBlob: constructed, this=0x7fda27932a20 id=blob73 reserveSize=6
2017/05/05 18:32:48.401| 24,8| MemBlob.cc(102) memAlloc: blob73 memAlloc: requested=6, received=40
2017/05/05 18:32:48.401| 24,9| MemBlob.cc(83) ~MemBlob: destructed, this=0x7fda279337f0 id=blob72 capacity=40 size=6
2017/05/05 18:32:48.401| 24,7| SBuf.cc(934) reAlloc: SBuf5 new store capacity: 40
2017/05/05 18:32:48.401| 3,5| cache_cf.cc(518) parseOneConfigFile: Processing: cache_dir rock /var/spool/squid/cache/cache4  8192 slot-size=32768 min-size=32769 max-size=33554432
2017/05/05 18:32:48.401| ERROR: This proxy does not support the 'rock' cache type. Ignoring.

Comment 6 Jan Houska 2017-05-08 17:48:41 UTC
In the test:


Old fail:
 squid-3.5.20-2.el7_3.3.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [   LOG    ] :: Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [   PASS   ] :: Command 'squid -X &> output.log' (Expected 0, got 0)
:: [   PASS   ] :: File 'output.log' should contain 'parseOneConfigFile: Processing: cache_dir rock' 
:: [   FAIL   ] :: File 'output.log' should not contain 'ERROR: This proxy does not support the 'rock' cache type. Ignoring.' 
:: [   LOG    ] :: Duration: 0s
:: [   LOG    ] :: Assertions: 2 good, 1 bad
:: [   FAIL   ] :: RESULT: Test


New Pass:
squid-3.5.20-10.el7

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [   LOG    ] :: Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [   PASS   ] :: Command 'squid -X &> output.log' (Expected 0, got 0)
:: [   PASS   ] :: File 'output.log' should contain 'parseOneConfigFile: Processing: cache_dir rock' 
:: [   PASS   ] :: File 'output.log' should not contain 'ERROR: This proxy does not support the 'rock' cache type. Ignoring.' 
:: [   LOG    ] :: Duration: 11s
:: [   LOG    ] :: Assertions: 3 good, 0 bad
:: [   PASS   ] :: RESULT: Test

Comment 7 errata-xmlrpc 2017-08-01 21:35:36 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2174