> On Sep 7, 2016, at 10:09 PM, James Peach <jpe...@apache.org> wrote: > > >> On Sep 7, 2016, at 9:16 PM, Sudheer Vinukonda >> <sudheervinuko...@yahoo.com.INVALID> wrote: >> >> >> >>> On Sep 7, 2016, at 8:48 PM, James Peach <jpe...@apache.org> wrote: >>> >>> >>>> On Sep 7, 2016, at 8:30 PM, Sudheer Vinukonda >>>> <sudheervinuko...@yahoo.com.INVALID> wrote: >>>> >>>> I was replying to this - >>>> >>>>> "I don’t think this is any different from allowing SPDY or HTTP/2 to mark >>>>> their transactions as non-internal." >>>> >>>> Marking Spdy/H2 as non-internal works because of the special handling done >>>> via FetchSM. With the proposed new API, you are intending to mark plugin >>>> generated requests as non-internal. My point is that it'd likely cause >>>> issues. I'll try to find some time to dig and provide specifics. >>> >>> That would be great, because I’m struggling to see the special case here :) >> >> Below are a couple of recent related jiras, there's likely more. >> >> TS-3404 >> TS-3777 > > Hmm, that’s a bit scary. It doesn’t seem like checking whether a transaction > is internal is a very reliable fix.
It's been a while, so I can't recall all the details well, but, basically yes - the fix based on txn's internal state didn't seem reliable enough to me. I thought I had a more comprehensive fix, but IIRC, jacksontj veto'ed it with his fix he claimed to be running in prod :) Regardless, I believe the txn's internal state has been used to hack around a bunch of (rather harmful) corner cases and allowing arbitrary plugin control without cleaning up the hacks, could cause some (very bad) regressions. > I guess there is a corresponding hack for HTTP/2 so it can be non-internal > and not fall into this hole? > There well could be, but can't recall from the top of my head. I think it might be a little different with Spdy/H2, since streams (txn), are multiplexed at the connection level and the connections are generally persistent (as opposed to plugin initiated "internal" requests which just hang since there's no multiplexing involved). > J