Yes, but the setting seems to work inconsistently with respect to 404 errors.

With secondary_mode=1, any failure, including a 404 will send the parent retry 
mechanism to the secondary parent list.  As suggested in the docs.

With secondary_mode=2, only unavailable server responses from all parents in 
the parent list will send the parent retry mechanism to the secondary parent 
list, BUT a 404 from all parents in the parent list DOES NOT send the parent 
retry mechanism to the secondary parent list.  The documentation suggests that 
any failure across all parents in the parent list should cause the 
secondary_parent list to be invoked.

Thanks

Nick

From: John Rushford <jjrushf...@gmail.com>
Date: Friday, September 16, 2022 at 1:57 PM
To: dev@trafficserver.apache.org <dev@trafficserver.apache.org>
Subject: Re: Different parent rules for 404 vs 5xx or unavailable
Have you tried setting the secondary_mode in parent.config?  I think you want 
secondarymodE=1

Sent from my iPhone

> On Sep 16, 2022, at 9:54 AM, Nick Dunkin <nick.dun...@vecima.com.invalid> 
> wrote:
>
> Hi John,
>
> My desire was to go to the secondary_parent list, if all servers in the 
> parent list return 404.  Are you saying this is not possible?
>
> I can’t seem to get this use case working in my toy examples.
>
> Thanks
>
> Nick
>
> From: John Rushford <jjrushf...@gmail.com>
> Date: Thursday, September 15, 2022 at 4:45 PM
> To: dev@trafficserver.apache.org <dev@trafficserver.apache.org>
> Subject: Re: Different parent rules for 404 vs 5xx or unavailable
> You can bump that up to greater than 5 but just keep in mind that once all 
> parents are tried without success, an additional retry beyond the total 
> number of parents would result in a 502 response back to the client instead 
> of a 404
>
> Sent from my iPhone
>
>> On Sep 15, 2022, at 1:58 PM, Robert O Butts <r...@apache.org> wrote:
>>
>> Nick, if you're open to writing code, it wouldn't be overly difficult to
>> modify the parent_select plugin to do what you want.
>>
>> https://github.com/apache/trafficserver/tree/master/plugins/experimental/parent_select
>> https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/parent_select.en.html
>> https://docs.trafficserver.apache.org/en/latest/admin-guide/files/strategies.yaml.en.html
>>
>>
>>> On Thu, Sep 15, 2022 at 1:55 PM Nick Dunkin <nick.dun...@vecima.com.invalid>
>>> wrote:
>>>
>>> Hi John,
>>>
>>> Thanks.
>>>
>>> But if I have 5 primary parents in “cluster A”, and 3 secondary parents in
>>> “cluster B”, then there is no configuration that will get me to “cluster B’
>>> if the content is not available (404) on “cluster A”.  Which is my problem
>>> unfortunately.
>>>
>>>
>>> I’d like to push that value of
>>>
>>>
>>>
>>> #define MAX_SIMPLE_RETRIES 5
>>>
>>> in the code, and rebuild.  Any reason that won’t work until I can create a
>>> more robust solution?
>>>
>>> Thanks,
>>>
>>> Nick
>>>
>>> From: John Rushford <jjrushf...@gmail.com>
>>> Date: Thursday, September 15, 2022 at 3:40 PM
>>> To: dev@trafficserver.apache.org <dev@trafficserver.apache.org>
>>> Subject: Re: Different parent rules for 404 vs 5xx or unavailable
>>> Yes, max_simple retries should be no more than the total number of parents
>>> -1.
>>>
>>> Let’s say that you have 5 parents and all 5 send back a 404, that’s what
>>> it should be if none of the parents has the object.  However, if you set
>>> max_simple_retries greater than the total number of parents, the final
>>> response would be a 502 because all parents were tried and no other parents
>>> are available.  So if you have a total of 5 parents, set max_simple_retries
>>> to 4,
>>> Number of parents - 1
>>>
>>> John
>>>
>>>> On Sep 15, 2022, at 1:23 PM, Nick Dunkin <nick.dun...@vecima.com.INVALID>
>>> wrote:
>>>>
>>>> Hi John,
>>>>
>>>> Thanks for the clarification.
>>>>
>>>> My short term mitigation is going to require me to increase the value of
>>> max_simple_retries.  This property is currently fixed in the code to a
>>> maximum values of 5.  Are you aware of any reason that I can’t safely
>>> increase that maximum (in the code) to something like 8?  My 404 responses
>>> are expected to be very quick, so I’m not too concerned about the
>>> cumulative timing implications that would occur in this rare failover use
>>> case.
>>>>
>>>> Is there anything special about the upper bound value of 5 for this
>>> max_simple_retries property?
>>>>
>>>> Thanks
>>>>
>>>> Nick
>>>>
>>>> From: John Rushford <jjrushf...@gmail.com>
>>>> Date: Thursday, September 15, 2022 at 2:53 PM
>>>> To: dev@trafficserver.apache.org <dev@trafficserver.apache.org>
>>>> Subject: Re: Different parent rules for 404 vs 5xx or unavailable
>>>> Nick,
>>>>
>>>> Currently this is not supported a change would have to be made to
>>> support it.
>>>>
>>>> John Rushford
>>>> jrushf...@apache.org
>>>>
>>>> Sent from my iPhone
>>>>
>>>>> On Sep 15, 2022, at 10:14 AM, Nick Dunkin <nick.dun...@vecima.com.invalid>
>>> wrote:
>>>>>
>>>>> 
>>>>> Hi,
>>>>>
>>>>> I have a parent.config rule that uses a primary and secondary set of
>>> parents.
>>>>>
>>>>> Assuming a 404 from a parent in the primary list I would like to
>>> immediately try a parent in the secondary parent list, but for a 5xx, or
>>> connection error, I would like to first exhaust the primary list first,
>>> before then trying the secondary.
>>>>>
>>>>> I would imagine this is a fairly common use case for cluster failover
>>> behavior.  i.e. “Content is HTTP 404 form cluster A, so go to cluster B”
>>>>>
>>>>> I am not able to get this use case working with the various options for
>>> secondary_mode in parent.config (ATS ver 9.1.3).
>>>>>
>>>>> Please can anyone provide assistance?  Maybe this use case is supported
>>> with strategies.yaml?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Nick
>>>>>
>>>>> Nick Dunkin
>>>>> Director, Software Architecture
>>>>> Manager – Architecture and New Product Introduction
>>>>> o:  +1 678.258.4071
>>>>> e: nick.dun...@vecima.com
>>>>>
>>>>>
>>>>>
>>>

Reply via email to