{"push_id":848027808,"size":44,"distinct_size":44,"ref":"refs/heads/master","head":"0eb04f9c0c9463262f044ffa05850851a3e44aa2","before":"1dffbd64d6a2480eedc3c2edd4b403f202e64248","commits":[{"sha":"2cdd62c788b1397e0a3e01618f499b53b2e2ae66","author":{"email":"2174a935518fb251cc3a1dfbb8671254ab2c5622@twitter.com","name":"Nik Shkrob"},"message":"finagle: Fix travis build\n\nProblem\n\nfinagle CI build fails because it depends on scrooge-core.\n\nSolution\n\nClone and build scrooge-core before building finagle.\n\nRB_ID=748353","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/2cdd62c788b1397e0a3e01618f499b53b2e2ae66"},{"sha":"a281c3271dcbce45312766e3b018ac5a94cf1ada","author":{"email":"ccc9d04961e5acc3041df4c85091b0af91b6102c@twitter.com","name":"Bing Wei"},"message":"finagle: add bing to some sub-proj owner\n\nI am familiar with the code base, and confident to review\n\nRB_ID=747151","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/a281c3271dcbce45312766e3b018ac5a94cf1ada"},{"sha":"95b9b314a1763a8de668cac77fd766741db623f0","author":{"email":"46b633da5989b3dbc08251e1d592cc31378bb412@twitter.com","name":"Dan Richelson"},"message":"finagle-memcached: Change test fixture to behave more like memcached\n\nRB_ID=747375","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/95b9b314a1763a8de668cac77fd766741db623f0"},{"sha":"97eeb4fd21df93d8a5ee1ebdc567cc08beffd52a","author":{"email":"dc0f9b9a0cc1c49a9475375a16e766b036b7dd47@twitter.com","name":"Matt Olsen"},"message":"Mid September pants release\n\nRB_ID=746706","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/97eeb4fd21df93d8a5ee1ebdc567cc08beffd52a"},{"sha":"538d12e79f716aeb1c5059f2a2882477a0ba3a10","author":{"email":"ae9e2289bfb86617e7df55ccf6837bd754e6357f@twitter.com","name":"Nick Howard"},"message":"Update junit security manager, mark failing tests as flaky, update security manager publish instructions\n\nAfter landing https://reviewboard.twitter.biz/r/747778/, I published the 0.0.6 jar to artifactory. This change bumps the BUILD.tools version to use the new artifact.\n\nWith this change, System.exit in tests will trigger a SecurityException and produce output on stderr. The change also ensures that tests that attempt to access the network on threads other than the main thread will fail with a security exception. The previous version would just output a stacktrace without raising an exception. That allowed tests to pass when running with multiple test run threads, though they should have failed.\n\nI found test failures due to unsupported operations being used. I marked these tests as flaky and filed tickets for them, which I've attached as bugs on this review.\n\nThis also updates the junit-sm publish instructions as they were based on pre-monobuild layout.\n\nRB_ID=749074","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/538d12e79f716aeb1c5059f2a2882477a0ba3a10"},{"sha":"8ac8b953c4600a9b1c085c7c1e26eb7701027dce","author":{"email":"24a54edd064a4908b8cc046e2ca1a8dcab73c61c@twitter.com","name":"Kevin Oliver"},"message":"finagle-core: Add a deny list to LoadService\n\nMotivation\n\n`c.t.f.util.LoadService` puts users at the mercy of their transitive\ndependencies as to what implementation gets loaded. This is simple but\ncan be difficult for users to manage and control.\n\nSolution\n\nIntroduce a global flag that is a deny list for implementations.\nFor a given LoadService interface, if the implementation is found in the\ndeny list, it will not be loaded.\n\n  -com.twitter.finagle.util.loadServiceDenied=com.twitter.finagle.stats.OstrichStatsReceiver,com.twitter.finagle.stats.CommonsStatsReceiver\n\nResult\n\nUsers have more control over the loaded implemetation when needed.\n\nRB_ID=748750\nTBR=true","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/8ac8b953c4600a9b1c085c7c1e26eb7701027dce"},{"sha":"e8cb4e881f57be0ec1bfceed6ee0309859e287c9","author":{"email":"772fe1f374d46bda4e68867185977c963227ef8e@twitter.com","name":"Ruben Oanta"},"message":"finagle-redis: remove concurrent lb\n\nProblem\n\nRedis is a stateful protocol, so we can't introduce\nconcurrency without managing the state across connections.\n\nSolution\n\nDrop the concurrent lb and return to a single pipelined\nconnection per client.\n\nRB_ID=749874","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/e8cb4e881f57be0ec1bfceed6ee0309859e287c9"},{"sha":"eaa64c767c0f7c85acc0d1008218122c38fa32d5","author":{"email":"afc5e40f7e0ce50d0caf1701580b337509dfc04f@twitter.com","name":"Daniel Schobel"},"message":"finagle-core: add netty3 owners file\n\nRB_ID=750160","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/eaa64c767c0f7c85acc0d1008218122c38fa32d5"},{"sha":"553835d51464a08a9256014d118cfd556766f821","author":{"email":"53b8cfe4a97d546341cbef717c58a56a55287c83@twitter.com","name":"Neuman Vong"},"message":"Privatize Netty types in DefaultTimer and TimerFromNettyTimer\n\nProblem\n\nDefaultTimer and TimerFromNettyTimer leak org.jboss.netty.util.Timer.\n\nSolution\n\nRename TimerFromNettyTimer to HashedWheelTimer, make them private to\nfinagle and provide compatible generic constructors. To migrate, users\nshould be able to pass the same parameters used to construct the Netty\nHashedWheelTimer directly into Finagle HashedWheelTimer.\n\nPreviously:\n\n    val timer = new TimerFromNettyTimer(\n      new netty.HashedWheelTimer(tickDuration, TimeUnit.MILLISECONDS))\n\nNow:\n\n    val timer = finagle.HashedWheelTimer(tickDuration.milliseconds)\n\nRB_ID=748514\nTBR=true","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/553835d51464a08a9256014d118cfd556766f821"},{"sha":"ca0c813d6f614a56104712fde0a9678b56c6aec7","author":{"email":"606f00da993aedf74bc4d0b247608be314b4e378@twitter.com","name":"Nick"},"message":"finagle-serversets: Use FutureCache for pending getData calls\n\nProblem:\n\nWe were not caching futures for calls to getData, thus we\nsometimes called getData redundantly for the same node, wasting\neffort and allocations.\n\nSolution:\n\nProperly cache futures for getData calls. Use util-cache's\nLoadingFutureCache. Also simplified the code to make it\neasier to reason about.\n\nResult:\n\nWe don't call getData redundantly, we allocated less memory\nwhen fetching serversets.\n\nRB_ID=749042","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/ca0c813d6f614a56104712fde0a9678b56c6aec7"},{"sha":"7678e3ba16be8174e844dc34b65a3b0da873defb","author":{"email":"772fe1f374d46bda4e68867185977c963227ef8e@twitter.com","name":"Ruben Oanta"},"message":"util-core: decommission scheduler clock stats\n\nThe Scheduler clock stats were decommissioned as they only make\nsense relative to `wallTime` and the tracking error we have experienced\nin production between `wallTime` and `*Time` make it impossible to use\nthem reliably. It is not worth the performance and code complexity\nto support them.\n\nRB_ID=750239","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/7678e3ba16be8174e844dc34b65a3b0da873defb"},{"sha":"615ad20eecbfac6072a237a4df7f0fc24b9db50c","author":{"email":"08ba87d1bc41a8ba67db2e97262ce09841c2f246@twitter.com","name":"Antoine Tollenaere"},"message":"Revert \"finagle-serversets: Use FutureCache for pending getData calls\"\n\nThis seems to cause problems resolving the eventbus provisioning serverset\n(serverset!eventbus/prod/provisioning). I could reproduce by creating a tunnel to nest in atla.\n\nRB_ID=750974\nTBR=true","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/615ad20eecbfac6072a237a4df7f0fc24b9db50c"},{"sha":"cb429dc0c5df360061190c4922459f09b8558b70","author":{"email":"eff0e6b3b55c42f655c864be9b27028ce9b2d31b@twitter.com","name":"Vladimir Kostyukov"},"message":"finagle-mux: Optimize WindowedMax\n\nProblem\n`WindowedMax` which is used by our `ThresholdFailureDetector` creates small structs, `AgedLong`s,\nwhich have the unfortunate behavior of having medium lifetimes which is what the JVM's garbage\ncollector wants to avoid.\n\nSolution\nAllocate once. Use everywhere.\n\nResult\nZero allocations for `add`. Slightly better peformance.\n\nRB_ID=751193","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/cb429dc0c5df360061190c4922459f09b8558b70"},{"sha":"b6f91799a6c73a0808bd4a6a7954bd6125750625","author":{"email":"afc5e40f7e0ce50d0caf1701580b337509dfc04f@twitter.com","name":"Daniel Schobel"},"message":"finagle-core: ignore consistently failing tests\n\nRB_ID=751473","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/b6f91799a6c73a0808bd4a6a7954bd6125750625"},{"sha":"276942670aa8bd4ef3588503004060a1c45b0a91","author":{"email":"57bd04edaad28bc28010cc36e2118e921bbe1779@twitter.com","name":"Chris Chen"},"message":"Make Zookeeper -client and -server usages explicit across source repo.\n\nProblem:\nThe current ZooKeeper jar is a monolithic artifact that contains client and\nserver classes. In order to make client and server usages clearer and prep\nfor a upcoming split of the artifact, we need to do some classification.\n\nSolution:\nCreate placeholder zookeeper-client and zookeeper-server targets. Make those\nusages explicit in build targets.\n\nResult:\nDependencies are more clear, and it will be easier to introduce split artifacts.\n\nRB_ID=751175","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/276942670aa8bd4ef3588503004060a1c45b0a91"},{"sha":"0214ef2eadf4f5d2fed0c784a2d23d380e3878d7","author":{"email":"07d2f916c3050f136d91c345c04c0fecd62adb94@pivotal.io","name":"Adrian Cole"},"message":"Removes zipkin annotation.duration\n\nThe OpenZipkin project dropped support for Annotation.duration. This\nfield was rarely used, and when used often incorrectly. Moreover, the\nzipkin query and web interfaces didn't support it. Dropping it\nimplicitly fixed bugs and confusion around the topic. This happened in\nzipkin 1.9, and finagle-zipkin is the last trace instrumentation library\nleft to adjust.\n\nSee https://github.com/openzipkin/zipkin/pull/717\n\nSigned-off-by: Daniel Schobel <dschobel@twitter.com>\n\nRB_ID=751986","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/0214ef2eadf4f5d2fed0c784a2d23d380e3878d7"},{"sha":"91b8808e02e508982123cb0785a163a0437d8388","author":{"email":"5fdc58b7f65707a973241b9267fb0fcc946d1efc@twitter.com","name":"Todd Segal"},"message":"[finagle-core, traffic] Allow libraries to configure defaults for LatencyCompensator. Add Twitter-Server-Internal override\n\n[Problem]\n\nLibraries cannot configure default settings for the LatencyCompensator module in the finagle stack client.\n\n[Solution]\n\nAdd a `DefaultOverride` for the LatencyCompensator that can be set once per-process. If multiple callers attempt to set the override, the second caller will receive 'false' and it is up to the caller to determine how to handle failure.\n\nRB_ID=750228","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/91b8808e02e508982123cb0785a163a0437d8388"},{"sha":"968e426aafd5fe96f3544585e79c68581d9f16a7","author":{"email":"2174a935518fb251cc3a1dfbb8671254ab2c5622@twitter.com","name":"Nik Shkrob"},"message":"finagle-benchmark: Move the thrift out to work around the nested object bug\n\nProblem\n\nDue to https://issues.scala-lang.org/browse/SI-2034, JMH doesn't work on scrooge-generated scala files after the service-per-endpoint patch.\n\nThe problem is the triple-nested objects introduced in the service-per-endpoint Scrooge patch. E.g.\n```\nobject Hello {\n  object Hi {\n    object Args {}\n  }\n}\n\nval args: Hello.Hi.Args = Hello.Hi.Args()\nprintln(args.getClass.getSimpleName) // throws InternalError: Malformed class name\n```\n\nSolution\n\nWork around the bug by moving thrift out of finagle-benchmark into a new sbt project finagle-benchmark-thrift.\n\nResult\n\nJMH only introspects classes in the current project, not the dependencies, so finagle-benchmark works.\n\nAlternative approach\n\nI've tried changing the outer 'object Hello' to a namespace. That doesn't work because it encloses implicit objects that must be in an enclosing object scope.\n\nRB_ID=752209","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/968e426aafd5fe96f3544585e79c68581d9f16a7"},{"sha":"a5d6bb30770993f677d57fad1ee3eae68510bf5a","author":{"email":"2174a935518fb251cc3a1dfbb8671254ab2c5622@twitter.com","name":"Nik Shkrob"},"message":"finagle: [docs, tiny] Fix newServiceIface usage in scaladoc\n\nProblem\n\nnewServiceIface takes a ServiceIface type param.\n\nSolution\n\nCorrect the usage in the comment.\n\nRB_ID=752200","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/a5d6bb30770993f677d57fad1ee3eae68510bf5a"},{"sha":"86d9b05dfd6480d3392d47565ba2955ef961ec6d","author":{"email":"242df34e329d43994dd4cde92d05ccdc67ecc765@twitter.com","name":"Moses Nakamura"},"message":"finagle-core: Stop recording transit latency and deadline budget for clients\n\nProblem\n\nFinagle records transit latency for clients, but only servers\ncare about it.\n\nSolution\n\nMove the transit latency stat out of StatsFilter and into\nServerStatsFilter. Handletime is also a server-specific stat,\nso moved that into ServerStatsFilter too, and deleted\nHandletimeFilter.  This has the added advantage of recording\ntransit latency at the same time we do handletime, which is one\nof the earliest points.\n\nThis review also handles some other miscellaneous cleanup,\nmaking no-allocation, testable, elapsed duration easier to use,\nadding tests for handletime, transit latency and deadline budget.\n\nResult\n\nFinagle services no longer export transit_latency_ms or\ndeadline_budget_ms for clients.  It's not useful for clients,\nso it's safe to remove it.\n\nRB_ID=751268","distinct":true,"url":"https://api.github.com/repos/rojanu/finagle/commits/86d9b05dfd6480d3392d47565ba2955ef961ec6d"}]}