Hi Shfreen,

It is workable without shutting down EventLoop Groups from
ServerConnectorController. But in this scenario AFAIU both MSF4j and Siddhi
uses same ServerConnectorController and it gives following issues when
considering the use case for siddhi.


   1.

   Cannot configure event group sizes (boss group size and worker group
   size) independently from siddhi side. This is needed us when supporting
   orderly process AFAIU.
   2.

   Cannot pause siddi level transport since it will block the thread group
   as in [1] . Even if we use a queue to add events, it will block the thread
   group when inserting to the queue. In that scenario thread group will also
   get blocked for someone else like MSF4j


[1]-
https://github.com/wso2-extensions/siddhi-io-http/blob/master/component/src/main/java/org/wso2/extension/siddhi/io/http/source/HttpSourceListener.java#L71-L83


Regards and Thatnks,

Yasara.

On Mon, Jul 31, 2017 at 11:20 PM, Shafreen Anfar <[email protected]> wrote:

> Hi Yasara,
>
> Why do you want to shutdown the EventLoop groups. AFAIR, it was due to
> some blocking operation in worker (child) thread pool right ?
>
> On Mon, Jul 31, 2017 at 10:49 PM, Yasara Dissanayake <[email protected]>
> wrote:
>
>> Hi all,
>>
>>
>> Currently I’m working on implementing HTTP carbon transport for Siddhi.
>> The problem I face there is that since MSF4J also using HTTP carbon
>> transport we are facing the issue of keeping single bossGroup and workGroup
>> for both MSF4J and Siddhi [1]. Therefore we cannot independently control
>> the configurations of thread groups in Siddhi level and MSF4J level. As
>> the offline discussion had with shafreen and rajith, I’m currently using
>> the the thread groups which created by MSF4J and start
>> ServerconnectorController [2] and cannot  stop it at siddhi level since it
>> would give exception [3] as it stops the eventloop groups still used by
>> MSF4J . Further, when we try to pause the HTTP transport in Siddhi level
>> , it will block the  HTTP transport in MSF4J and stop the server as
>> well.Any  possible resolution for this issue is highly appreciated since
>> this seems to be a blocker when invoking HTTP carbon transport.  I have
>> created an issue to track on this[4].
>>
>>
>> [1] https://github.com/wso2/carbon-transports/blob/master/http/
>> org.wso2.carbon.transport.http.netty/src/main/java/org/
>> wso2/carbon/transport/http/netty/internal/HTTPTransportCo
>> ntextHolder.java#L49-L63
>>
>> [2]https://github.com/wso2-extensions/siddhi-io-http/blob/
>> master/component/src/main/java/org/wso2/extension/siddhi
>> /io/http/source/HttpConnectorRegistry.java#L130-L134
>>
>> [3]
>>
>> [2017-07-30 22:47:09,324] ERROR 
>> {io.netty.util.concurrent.DefaultPromise.rejectedExecution}
>> - Failed to submit a listener notification task. Event loop shut down?
>> java.util.concurrent.RejectedExecutionException: event executor
>> terminated
>>
>>    at io.netty.util.concurrent.SingleThreadEventExecutor.reject(Si
>> ngleThreadEventExecutor.java:821)
>>
>>    at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask
>> (SingleThreadEventExecutor.java:327)
>>
>>    at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(S
>> ingleThreadEventExecutor.java:320)
>>
>>    at io.netty.util.concurrent.SingleThreadEventExecutor.execute(S
>> ingleThreadEventExecutor.java:746)
>>
>>    at io.netty.util.concurrent.DefaultPromise.safeExecute(DefaultP
>> romise.java:760)
>>
>>    at io.netty.util.concurrent.DefaultPromise.notifyListeners(Defa
>> ultPromise.java:428)
>>
>>    at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPr
>> omise.java:113)
>>
>>    at io.netty.channel.DefaultChannelPromise.setFailure(DefaultCha
>> nnelPromise.java:87)
>>
>>    at io.netty.channel.AbstractChannelHandlerContext.safeExecute(A
>> bstractChannelHandlerContext.java:1011)
>>
>>    at io.netty.channel.AbstractChannelHandlerContext.write(Abstrac
>> tChannelHandlerContext.java:826)
>>
>>    at io.netty.channel.AbstractChannelHandlerContext.write(Abstrac
>> tChannelHandlerContext.java:724)
>>
>>    at io.netty.channel.AbstractChannelHandlerContext.write(Abstrac
>> tChannelHandlerContext.java:705)
>>
>>    at org.wso2.carbon.transport.http.netty.listener.ResponseCallba
>> ck.done(ResponseCallback.java:108)
>>
>>    at org.wso2.msf4j.internal.entitywriter.ObjectEntityWriter.
>> writeData(ObjectEntityWriter.java:57)
>>
>>    at org.wso2.msf4j.Response.processEntity(Response.java:292)
>>
>>    at org.wso2.msf4j.Response.send(Response.java:285)
>>
>>    at org.wso2.msf4j.internal.router.HttpMethodInfo.invoke(HttpMet
>> hodInfo.java:157)
>>
>>    at org.wso2.msf4j.internal.MSF4JMessageProcessor.dispatchMethod
>> (MSF4JMessageProcessor.java:208)
>>
>>    at org.wso2.msf4j.internal.MSF4JMessageProcessor.lambda$receive
>> $53(MSF4JMessageProcessor.java:120)
>>
>>    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>> Executor.java:1142)
>>
>>    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>> lExecutor.java:617)
>>
>>    at java.lang.Thread.run(Thread.java:748)
>>
>> [4] https://github.com/wso2/carbon-transports/issues/340
>>
>>
>> Thanks & Regards,
>> Yasara.
>> --
>>
>>
>> *Yasara Dissanayake*
>> *Software Engineer*
>> *WSO2 Lanka (pvt) Ltd.*
>>
>> *Web     : http://wso2.com/ <http://wso2.com/>*
>>
>> *Email   : [email protected] <[email protected]>Mobile : +94702107422
>> <+94%2070%20210%207422>*
>> <https://lk.linkedin.com/in/dinalidabarera>
>>
>
>
>
> --
> Regards,
> *Shafreen*
> Software Engineer
> WSO2 Inc
> Mobile : 077-556-395-1
>



-- 


*Yasara Dissanayake*
*Software Engineer*
*WSO2 Lanka (pvt) Ltd.*

*Web     : http://wso2.com/ <http://wso2.com/>*

*Email   : [email protected] <[email protected]>Mobile : +94702107422
<+94%2070%20210%207422>*
<https://lk.linkedin.com/in/dinalidabarera>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to