These are chat archives for allegro/hermes

22nd
Feb 2016
Adam Dubiel
@adamdubiel
Feb 22 2016 07:59
allegro/hermes#312
i guess this is more or less it :)
Stevo Slavić
@sslavic
Feb 22 2016 08:37
seems static
would work if one can define filter logic
if it was plugable
Adam Dubiel
@adamdubiel
Feb 22 2016 08:38
it probably would be
Stevo Slavić
@sslavic
Feb 22 2016 08:40
added a comment there, so implementor keeps it in mind when designing solution
thanks
Adam Dubiel
@adamdubiel
Feb 22 2016 08:40
i noticed, thanks!
Stevo Slavić
@sslavic
Feb 22 2016 09:27
what does incubation label mean? especially related to expected timelines
it means that it will be stable in 0.9.0 version, when we are sure it works fine
Stevo Slavić
@sslavic
Feb 22 2016 09:30
thanks for heads up
kkorbacz
@kkorbacz
Feb 22 2016 09:33
@adamdubiel, this most likely will be something trivial but when following the documentation http://hermes-pubsub.readthedocs.org/en/latest/deployment/packaging/
for hermes-frontend I get:
org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=BackupMessagesLoader,parent=PersistentBufferExtension,qualifiers={},position=4,optional=false,self=false,unqualified=null,836969741)
any hints ?
Adam Dubiel
@adamdubiel
Feb 22 2016 09:35
wait, let me try this out
Adam Dubiel
@adamdubiel
Feb 22 2016 09:43
@kkorbacz i will get someone to investigate, in the meantime can you git checkout hermes-0.8.3 and run it there?
kkorbacz
@kkorbacz
Feb 22 2016 09:45
ok, I will checkout hermes-0.8.3
Adam Dubiel
@adamdubiel
Feb 22 2016 09:46
i wasn't able to reproduce the error on vagrant right away, so i need some more settings, don't want to stall you while i'm doing it :)
kkorbacz
@kkorbacz
Feb 22 2016 09:55
This message was deleted

and build.gradle:

apply plugin: 'java'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
mavenCentral()
}

dependencies {
compile group: 'pl.allegro.tech.hermes', name: 'hermes-frontend', version: '0.8.3'
}

if (project.hasProperty('distribution')) {
apply plugin: 'application'
mainClassName = 'org.kkorbacz.HermesApplication'
}

task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}

task showMeCache << {
configurations.compile.each { println it }
}

Adam Dubiel
@adamdubiel
Feb 22 2016 09:55
oh, you are building your own? okay, i thought you run the distZips that are provided out of the package
Adam Dubiel
@adamdubiel
Feb 22 2016 10:08
what is the excaption that you get?
kkorbacz
@kkorbacz
Feb 22 2016 10:08
yes I am building it on my own,
when running distZips that are provided out of the package there are no errors,
but still I think that in case one would like to adjust hermes to its needs it should be done in a way similar to what I showed
(and this is the way I interpreted the documentation)
Adam Dubiel
@adamdubiel
Feb 22 2016 10:09
yes, you are right, this is how we run hermes on prod, so i'm a bit confused, give me some time to reproduce it
kkorbacz
@kkorbacz
Feb 22 2016 10:10
the stacktrace is pretty long
any suggestions where should I paste it ?
Adam Dubiel
@adamdubiel
Feb 22 2016 10:10
kkorbacz
@kkorbacz
Feb 22 2016 10:10
:)
Adam Dubiel
@adamdubiel
Feb 22 2016 10:15
hm, okay, can you paste your main there as well? or the point where you build hermes
kkorbacz
@kkorbacz
Feb 22 2016 10:16

package org.kkorbacz;

import pl.allegro.tech.hermes.frontend.HermesFrontend;

public class HermesApplication {
public static void main(String[] args) {
HermesFrontend frontend = HermesFrontend.frontend().build();
frontend.start();
}
}

I have simplified it in order to narrow the problem down (I tried with shutdown and startup hooks before)
Adam Dubiel
@adamdubiel
Feb 22 2016 10:19
okay, i need to finish one thing (~15min) and i will help you out
Adam Dubiel
@adamdubiel
Feb 22 2016 10:50
i have the same exception, i will try to debug it now
Adam Dubiel
@adamdubiel
Feb 22 2016 11:08
i found the perpetrator, for a fix add: compile group: 'com.jayway.awaitility', name: 'awaitility', version: '1.6.1'
i'm trying to figure out why this dependency is not added from hemres-frontend, as it has it in compile scope: https://github.com/allegro/hermes/blob/hermes-0.8.4/hermes-frontend/build.gradle
Adam Dubiel
@adamdubiel
Feb 22 2016 11:13
@kkorbacz ^
kkorbacz
@kkorbacz
Feb 22 2016 11:18
I will test it now, from what I see awaitility in hermes-frontend is defined as testCompile
Adam Dubiel
@adamdubiel
Feb 22 2016 11:19
it was in 0.8.3, it is compile in 0.8.4, at least build.gradle states so
hmm okay, i see that maven.org says it's both in compile and test, i think this might be the cause of all problems
i will update the docs right now and think how to solve it later
kkorbacz
@kkorbacz
Feb 22 2016 11:28
thank you for your support (and really fast feedback)
Adam Dubiel
@adamdubiel
Feb 22 2016 11:28
okay, the doc is up-to-date now, sorry for the inconviniece
:)
also an issue to fix this: allegro/hermes#373
Stevo Slavić
@sslavic
Feb 22 2016 17:01
how long after deleting subscription, topic and group will hermes consumers actually stop sending requests to subscriber?
Adam Dubiel
@adamdubiel
Feb 22 2016 17:03
short answer: immediately in human scale. long answer: it depends on zookeeper event propagation, not that i measured it, but we only once or twice had a problem with glitch, when zk event never arrived at host and consumer did not shut down. mostly it happens immediately (exact time can be derived from logs)
Stevo Slavić
@sslavic
Feb 22 2016 17:11
what's likelihood of timing issues, resulting in not completely deleted/stopped things?
e.g. can one immediately after deleting last subscription, delete topic, and immediately after receiving delete topic response issue delete group request?
Adam Dubiel
@adamdubiel
Feb 22 2016 17:12
Consumers don't care about topic/group
they only react and listen to subscription changes
so there is no danger of any "bad timings" when it comes to deletion