Jens Geyer created THRIFT-6280:
----------------------------------

             Summary: Go: THeaderTransportFactory passes a stale TConfiguration 
to the factory it wraps
                 Key: THRIFT-6280
                 URL: https://issues.apache.org/jira/browse/THRIFT-6280
             Project: Thrift
          Issue Type: Bug
          Components: Go - Library
            Reporter: Jens Geyer


Found while working on THRIFT-6263.

{{THeaderTransportFactory.SetTConfiguration}} 
({{lib/go/thrift/header_transport.go}}):

{code:go}
func (f *THeaderTransportFactory) SetTConfiguration(cfg *TConfiguration) {
        PropagateTConfiguration(f.Factory, f.cfg)
        f.cfg = cfg
}
{code}

It hands the wrapped factory the configuration it held before, not the one it 
was given. {{NewTHeaderTransportFactoryConf}} does not pass the configuration 
to the wrapped factory at all. The framed factory does both.

Measured on master:
# A factory built with {{MaxFrameSize: 1}} is updated with 
{{PropagateTConfiguration}} to {{MaxFrameSize: 2}}.
# The wrapped factory then holds {{MaxFrameSize: 1}}.

h2. Suggested

Propagate {{cfg}} rather than {{f.cfg}}, propagate in 
{{NewTHeaderTransportFactoryConf}} as {{NewTFramedTransportFactoryConf}} does, 
and cover both with a test.

_Drafted with AI assistance (Claude Opus 5); reviewed and filed by Jens Geyer._




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to