[illumos-Developer] Reaping enablings on defunct providers

Theo Schlossnagle jesus at omniti.com
Sat Jul 2 11:37:55 PDT 2011


This is awesome.  Thanks for taking the time to dive in and solve this one.

We do indeed have some high-turnover postgres systems that are
impossible to effectively trace due to this issue.

I'm excited to get this into a production kernel over here... in due time :-)

On Sat, Jul 2, 2011 at 2:27 PM, Bryan Cantrill <bryan at joyent.com> wrote:
> All,
>
> A longstanding problem that we have had is that enablings on defunct
> providers (e.g., USDT probes on dead processes) are not reaped:  the
> probes will exist as long as there exists an enabling for them.  When
> processes are turning over frequently (or when enablings are
> long-running), this can clog up the probe space to the point that
> DTrace probe creation will silently fail (an absolutely maddening
> failure mode).  This has been hit several times over the years (we
> were nailed by it on our build machines at Fishworks) -- so when Theo
> Schlossnagle mentioned to me that he was getting killed by this
> problem in an environment with rapidly turning over Postgres
> processes, I was embarrassed that I hadn't tackled it earlier.  As it
> turns out, it was a tad thorny for locking reasons, but a patch for
> this problem is attached.  We have integrated this into our bits at
> Joyent (internal ticket is OS-454, "enablings on defunct providers
> prevent providers from unregistering"), so you'll see this show up
> soon at http://github.com/joyent/illumos-joyent -- but I wanted to
> give everyone here a heads-up.
>
> Anyway, patch is attached, with my thanks to Adam for  a helpful
> discussion on fasttrap's asynchronous provider retiring mechanics.
> Note that Adam hasn't (yet) reviewed this, and its integration
> upstream should wait until he's had a chance to look it over. Please
> let me know if you have any questions or comments!
>
>        Thanks,
>        Bryan
>



-- 
Theo Schlossnagle

http://omniti.com/is/theo-schlossnagle



More information about the Developer mailing list