Community -> PublicMeetings -> 25th of February 2015
Help with testing OpenSIPS 2.1
The new OpenSIPS 2.1 version comes not only with a new name, but also with a lot of enhancements: a new transport interface, async I/O support, data partitioning and message compression are just some of the new features that will be released with this version. And others will follow, you can find a preliminary list here.
While new features are added to the project, more testing work is required. Even though we are doing extensive tests on our own, our scenarios are limited and can't cover a lot of use cases. That's where we need the community's help: to test as many scenarios as possible, in order to detect bugs from scratch and be able to fix them before the release.
That's how this public discussion's topic came out: Testing OpenSIPS 2.1. During this session we would like you to help us answer the following questions:
People can assist with testing 2.1 with whatever crazy scenarios they have - OpenSIPS team can assist with migration info, troubleshooting and fixing. The goal is to catch and kill as many bugs as possible before the stable release - And we believe this is something that we can all take advantage of.
16:59 < razvanc>| great, thanks lirakis 16:59 < razvanc>| So today's meeting is about OpenSIPS 2.1 testing 17:00 < razvanc>| therea are some ideas written down here: http://www.opensips.org/Community/IRCmeeting20150225 17:00 < razvanc>| The new OpenSIPS 2.1 will come wit _a lot_ of new changes and enhancements 17:00 < razvanc>| and we all want this release to be as stable as possible 17:01 --- | bogdan_vs has changed the topic to: IRC Metting - Help on testing 2.1 17:01 < razvanc>| although we are doing some extensive tests on our own 17:01 < razvanc>| our scenarios are limited 17:01 < razvanc>| that's where we really need your help 17:02 < lirakis>| i mean ... i just created a new digital ocean VM dedicated to running opensips 2.1 and testing all this stuff 17:02 < lirakis>| thats the best thing i can think of to help test 17:02 < razvanc>| that's a wonderful start :) 17:02 < razvanc>| thanks 17:03 < lirakis>| as far as "engaging the community" ... im not sure exactly what we can do 17:03 < razvanc>| and what platform are you running out there 17:03 < lirakis> | razvanc, centos7 17:03 < razvanc>| no, I'm asking if you have a limited set of functions 17:03 < razvanc>| or your whole platform, ported to 2.1 17:03 < lirakis>| yes its a fresh clean install of 2.1 17:04 < lirakis>| im building an entirely new system on it 17:04 < razvanc>| cool, with everything you have in production? 17:04 < lirakis>| i will be replicating my existing 1.10 install on this, plus adding features 17:04 < razvanc>| that's great 17:04 < Samael28>| As I understood, 2.1 is not back-compatible with 1.x And yet, not ready for production. A can try to implement my project on 2.1 on test server. 17:04 < lirakis>| moving to rtpengine, as well as adding tcp, ipv6, and ws when they are merged to master 17:05 < razvanc>| Samael28: no, it is not fully back-compatible 17:05 < razvanc>| although the changes are minor 17:05 < razvanc>| only the new stuff need something different 17:05 < razvanc>| like the asynchronous operations 17:06 < wikki>| I'm running into an issue where the get_source_group() seems to be failing for some ip addresses, they are in the table, and I see them if I do an address dump. The strange thing is that it seems to fail once, then goes through. Not sure how to really troubleshoot this 17:06 < Samael28>| Yep, async is something I need to read about more carefully 17:06 < lirakis>| wikki, we are in the middle of a meeting - please wait till we are done 17:06 < wikki>| NP 17:06 < lirakis>| so ... as far as engagingt he community, i dont know if there is a way to provide people with an environment to run 2.1 in 17:07 < lirakis>| like ... give out small virtual machines temporarily or some thing 17:07 < lirakis>| not sure how feasible some thing like that is 17:07 < razvanc>| Samael28: what we really want is for them to port their scripts to the new 2.1 17:07 < razvanc>| and run as many as different scenarios possible 17:07 < lirakis>| certainly i think ...publishing a lot on the website about it 17:08 < lirakis>| trying to get people aware that .... there is a serious need for them to "try it" ... port their existing configs to it etc. 17:08 < razvanc>| yes 17:08 < razvanc>| that's exactly what we need 17:08 < Samael28>| So... What is a plan of testing? Means you want community to try their scripts on your VM's or on their own and give feedback? 17:08 < razvanc>| we can assist them with migration info and troubleshooting 17:08 < lirakis>| i think awareness is a big part of that 17:09 < lirakis>| i know 2.1 is out b/c im on the mailing lists and irc all the time 17:09 < razvanc>| Samael28: not really, people should run their scripts, in their environments and give back feedback 17:09 < lirakis>| there is no "BIG" chunk of the main opensips.org page that jumps out at me talking about 2.1 17:10 < razvanc>| lirakis: yes, so there's one item on the TODO list :) 17:12 < Samael28>| Hm.... Question about async idea right away: For ex. I used async and than continiue work with SIP message. When I will called to my_resume_route, in what state would be SIP message, if I change it after async called? 17:12 < lirakis>| yeah ... outside of awareness, and making the message very clear i dont have any great suggestions for engaging the community 17:12 < liviuc>| Samael: the async() call stops the script immediately 17:12 < liviuc>| so no more "continue work with SIP message" :) 17:13 < razvanc>| lirakis: we should probably write down how we (the developers) can help you do that 17:13 < razvanc>| for example, write a migration tutorial 17:13 < lirakis>| Samael28, async does puts the sip message into its own "context" which is sorta frozen and put into waiting till the operation returns. this is so the process that was handling the message can go back to doing other things 17:13 < razvanc>| that's definitely something we should do 17:13 < lirakis>| so ... related to previous meetings 17:13 < lirakis>| is there any wiki available 17:14 < lirakis>| that i could contribute to 17:14 < lirakis>| while doing testing on 2.1 17:14 < lirakis>| like i am documenting setting up 2.1 with rtpeninge 17:14 < lirakis>| and it could be a tutorial easily 17:14 < razvanc>| lirakis: http://www.opensips.org/Documentation/Tutorials 17:14 < razvanc>| check this out 17:14 < lirakis>| no i know 17:14 < lirakis>| but last meeting we talked about the website, and making a more dedicated wiki 17:14 < razvanc>| you can write a tutorial there 17:15 < lirakis>| ok 17:15 < lirakis>| so that is still the place to put stuff 17:15 < razvanc>| lirakis: indeed, and we are working on that too 17:15 < razvanc>| but it is not yet completed 17:15 < lirakis>| ok no problem just curious 17:15 < razvanc>| prior to that, we need to release OpenSIPS 2.1 17:15 < lirakis>| yes i know h aha 17:16 < razvanc>| and we definitely want it to be awesome :) 17:16 < razvanc>| it will be great if you could document your "experience" with OpenSIPS 2.1 in a wiki page there 17:16 < razvanc>| you do have write permissions 17:17 < razvanc>| until the next wiki and blog is done 17:17 < lirakis>| i will do that 17:17 < razvanc>| that would be really helpful for others too 17:18 < razvanc>| so, what else? 17:18 < razvanc>| How to speed up the "testing", "reporting" and "fixing" cycle? 17:18 < lirakis>| i mean ... i think reporting issues on git, and making pull requests is about as quick a cycle as we can get 17:19 < razvanc>| I agree 17:21 < lirakis>| i ... dont have anything else to add hehe 17:21 < razvanc>| I was searching through the conversations yesterday 17:21 < razvanc>| and noticed OliverTynes message, saying that the master branch is not recommended for testing 17:22 < OliverTynes>| I said it crashed at once when I tried it with a medium sized config 17:22 < OliverTynes>| and then bogdan said it should work 17:22 < OliverTynes>| that was that 17:22 < razvanc>| that he found some crashes 17:22 < OliverTynes>| I am planning to do more involved testing tomorrow actually :) 17:22 < razvanc>| well, that would be great 17:22 < OliverTynes>| oh sorry, did I just jump into the opensips irc meeting? just saw myself getting hilighted 17:23 < razvanc>| because even though it is the master code, we don't plan it to crash :) 17:23 < razvanc>| no worries, you are welcome here :) 17:23 < OliverTynes>| what is keeping a lot of people from properly testing 2.1 in my oppinion 17:23 < OliverTynes>| is that there is very little to gain for us users before we can actually test using WS 17:23 < OliverTynes>| which is the main reason for most people going 1.11 -> 2.1 I am guessing 17:24 < lirakis>| i disagree with that 17:24 < lirakis>| i mean ... the whole refactor of tcp + async 17:24 < lirakis>| well 17:24 < lirakis>| to be fair 17:24 < lirakis>| that is not merged 17:24 < OliverTynes>| that is a good thing, dont misunderstand me 17:24 < lirakis>| so ... i do agree with that 17:24 < OliverTynes>| but the main *feature* of opensips, from a usability point of view, are the websockets, no? 17:24 < lirakis>| i feel like we wont get much from testing without having the new async network refactor 17:24 < OliverTynes>| most of the async stuff is perfomance improvements and other things going on under the hood 17:24 < razvanc>| not really 17:25 < lirakis>| OliverTynes, the WHOLE network subsystem is refactored 17:25 < lirakis>| and i want to test that 17:25 < razvanc>| the async operations are already in place in the master branch 17:25 < lirakis>| but it is not in master yet 17:25 * | OliverTynes has not gone in depth into this other than waiting very excitedly for integrated websocket 17:25 < lirakis>| bogdan_vs, had mentioned that the merge for that stuff to master might happen this week 17:25 < lirakis>| i think that until that happens, there will be less testing benefit 17:26 < lirakis>| b/c without it, 2.1 is "feels like" just new modules + async ops 17:26 < lirakis>| but with it, 2.1 is a completely new machine 17:26 < lirakis>| i want to test the "new machine" 17:26 < lirakis>| and i think the most valuable testing will be against the "complete" new codebase 17:27 < razvanc>| lirakis: yes, definitely testing makes sense after the merge 17:27 < liviuc>| some people may enjoy the multiple tables feature of drouting or compression scenarios 17:27 < razvanc>| because the release will contain both of them 17:27 < lirakis>| right 17:27 < razvanc>| and we will do the merge asap 17:27 < liviuc>| so there are many other reasons for the code to start being tested out 17:28 < lirakis>| liviuc, right i know there are new modules 17:28 < liviuc>| imo, besides raising the awareness of the new features (which is a good first step) 17:28 < lirakis>| but testing against the major refactored stuff is going to be "more valuable" testing" 17:28 < liviuc>| I would say that a better collection of fresh tutorials would increase the likelihood of newly released code being tested 17:29 < liviuc>| and advertise them as well on the main page 17:29 < lirakis>| so .. in general it seems like lots of awareness issues: awareness of major refactor and need for testing, as well as awareness of nnew features to incentivise people to test 17:29 < lirakis>| yes - i think ther needs to be a BIG splash section on the front page 17:29 < lirakis>| not just a little wall of text 17:30 < razvanc>| sure, we'll do that 17:31 < razvanc>| as soon as the merge is done 17:31 < razvanc>| so you can have the whole thing out there 17:32 < razvanc>| OliverTynes: so you're saying that you're not very eager to test until WS appears 17:32 < OliverTynes>| true and not true 17:32 < OliverTynes>| my main reason to go 2.1 is to get rid of oversip 17:32 < OliverTynes>| but I still need my stuff to be 2.1 compatible, so I might as well test earlier 17:33 < OliverTynes>| but most of my business case rests on websockets, so thats the thing I am most keen to figure out if will work satisfactory 17:33 < razvanc>| async ops also bring huge pluses in terms of performance 17:33 < lirakis>| i mean i agree - ws is a big feature, but i think the whole refactored network stuff is a big win 17:33 < razvanc>| but probably that's not yout focus right now 17:33 < OliverTynes>| and certainly the new async stuff plays very nicely in that I can move a lot more logic to REST instead of convoluted database and avpops stuff 17:33 < lirakis>| https://dl.dropboxusercontent.com/u/19254184/new.png 17:33 < lirakis>| ^ 17:33 < razvanc>| wow, that must be awful :) 17:33 < lirakis>| frotn page 17:33 < lirakis>| lol 17:34 < OliverTynes>| tbh I havent looked in depth enough to know whats so great about the refactored network modules 17:34 < lirakis>| well its not "modules" 17:34 < lirakis>| its the network subsystem entirely 17:34 < OliverTynes>| I meant modules as in modules of ode 17:34 < razvanc>| lirakis: that's a great start, thanks! 17:34 < OliverTynes>| not proper module 17:34 < razvanc>| actually there will be modules :) 17:34 < lirakis> | razvanc, i mean thats a bit of a "joke" ... but im serious in the sense that i think it should be HUGE splash on the front 17:35 < razvanc>| yeah, we got it 17:36 < razvanc>| also we should probably add all the new features out there 17:37 < razvanc>| and not with small bullets :) 17:37 < lirakis>| yep 17:38 < razvanc>| we'll do that as soon as we have everything in place 17:38 < razvanc>| and 2.1 is ready for release 17:39 < razvanc>| bottom line, as lirakis pointed out, we need to increase the awarness of the new features and write a set of tutorials to help people migrate their scripts 17:40 < razvanc>| anything else to point out? 17:42 < razvanc>| going once... going twice... 17:42 < pbaines>| along wit hthe new features, any backwards incompatible changes and anything that is deprecated 17:42 < liviuc>| that will be covered in the version migration page 17:43 < OliverTynes>| it doesnt say anywhere what the features of 2.1 are 17:43 < OliverTynes>| except for async 17:43 < OliverTynes>| as I can see on the main page 17:43 < liviuc>| hmmm... http://www.opensips.org/About/Version-2-1-0 17:43 < OliverTynes>| that should be linked right on the main page 17:43 < OliverTynes>| alongside the async article 17:44 < liviuc>| honestly, I never seem to find that page (I have bookmarked it) 17:45 < OliverTynes>| also tbh, that page lists a lot of changes for modules 17:45 < OliverTynes>| and some for debug 17:45 < razvanc>| OliverTynes: well pointed out, we should increase the awarness 17:46 < OliverTynes>| what is the gist of these features lirakis is so keen on? 17:46 < OliverTynes>| if there are implications for people who mainly use scripts, and dont dig into modules code / c++ in general they should also be listed there 17:46 < lirakis>| the refactor of the network makes tcp viable 17:46 < lirakis>| which is huge 17:46 < OliverTynes>| I have no idea *what* I am testing 17:46 < lirakis>| rtpengine is obviusly a big thing as well 17:46 < razvanc>| they are not yet merged in the master branch, that's why they are not there yet 17:46 < lirakis>| not sure if thats backported 17:46 < OliverTynes>| lirakis: how and why? (I genuinely want to know :) 17:47 < lirakis>| OliverTynes, tcp was previously not really async it was like ... sorta 17:47 < lirakis>| so it was basically a blocking protocol in opensips 1.X 17:47 < OliverTynes>| if you dont do long running rest stuff you *probably* wont block the buffer enough I guess 17:47 < lirakis>| the async network refactor makes tcp and and ws possible 17:47 < lirakis>| im not talking about async "operations" 17:47 < OliverTynes>| but if you have hundreds of thousands of users I guess it becomes very lightweight again 17:47 < lirakis>| im talking at the netowork protocol level 17:47 < OliverTynes>| no I am talking about pure tcp processing 17:48 < OliverTynes>| isnt that part gone async as well? 17:48 < lirakis>| yes 17:48 < lirakis>| that is the huge win 17:48 < OliverTynes>| I thought it was regular blocking worker pool now 17:48 < lirakis>| you could not hae thousands of tcp users currently 17:48 < lirakis>| IMO 17:48 < lirakis>| OliverTynes, its like ... fake async 17:48 < lirakis>| currently 17:48 < razvanc>| OliverTynes: if you are using REST, async ops are a huge plus for you 17:48 < OliverTynes>| yeah, or that is, I am not using it yet, because I was waiting for async 17:49 < razvanc>| because while waiting for the REST response, you can process other messages 17:49 < razvanc>| that's already in the master branch 17:49 < OliverTynes>| yep 17:49 < lirakis>| yeah ... it puts a reactor into opensips so the processes arent blocked while you go do rest calls some where 17:49 < liviuc>| http://www.opensips.org/About/Version-2-1-0#toc21 17:49 < lirakis>| OliverTynes, the async ops for stuff like rest ARE in already 17:49 < OliverTynes>| is there a timeline for rest_post async too? 17:50 < lirakis>| the network stuff is not merged yet 17:50 < OliverTynes>| hence, my I *was* waiting 17:50 < OliverTynes>| :) 17:50 < liviuc>| it's a one-day job, haven't found any time :) 17:50 < OliverTynes>| what is the new async tcp stack based on, simple event loop like node? 17:50 < OliverTynes>| out of curisoity when all you developers are here 17:50 < lirakis>| its a reactor pattern 17:51 < lirakis>| so yeah i mean ... its "similar" to how node, event machine etc. work 17:51 < lirakis>| they are all reactor pattern implementations 17:51 < OliverTynes>| ok 17:51 < lirakis>| i mean ... opensips devs can correct me if im wrong 17:51 < OliverTynes>| so still syncronous calls into the scripting engine 17:51 < lirakis>| he he 17:51 < OliverTynes>| if they follow that in a pure sense 17:51 < OliverTynes>| wont that mean that a reactor handler will block even if you do an async script call? 17:52 < razvanc>| OliverTynes: async operations solve this :) 17:52 < lirakis>| everything in the script is processing ... if an async op occurs, a context is created and put into the reactor 17:52 < lirakis>| then the script is free to process some new packet 17:52 < lirakis>| when the async op returns 17:52 < OliverTynes>| ah, so the scripting engine is decoupled as well 17:52 < OliverTynes>| then I gotcha 17:52 < lirakis>| the context is resumed and continues processing 17:53 < lirakis>| it makes it so the script processes will not block 17:53 < lirakis>| when doing async operations 17:53 < lirakis>| they will dump stuff off to the reactor, then take whatever is the next incoming packet and start processing it in the script 17:53 < lirakis>| again 17:53 < lirakis>| devs correct me if im wrong in summarizing that 17:53 < OliverTynes>| I am very familiar with async programming, I was curious on how they implemented it 17:53 < razvanc>| inded, that's how it works 17:53 < razvanc>| but let's get back to our discussion :) 17:53 < lirakis>| yea 17:53 < lirakis>| sorry 17:53 < OliverTynes>| yeah, sort of sorry 17:54 < OliverTynes>| details of *what* you have done also brings interest for people to test 2.1 :) 17:54 < razvanc>| yes, we tried to to something like that for the transport interface 17:54 < razvanc>| http://www.opensips.org/Development/TransportInterfaceAPI 17:55 < razvanc>| give community more information about how we do stuff 17:55 < lirakis>| right - so i think it is important to make these "details" really accesible 17:55 < razvanc>| also for async ops, we had a different meeting 17:55 < liviuc>| Oliver, that sounds like an article for a dev.opensips.org page :) 17:55 < liviuc>| just thinking out loud... 17:55 < razvanc>| http://www.opensips.org/Community/IRCmeeting20140827 17:55 < OliverTynes> | that is exactly what I asked for razvanc 17:56 < OliverTynes>| *what I meant 17:56 < razvanc>| yes, we should probably sum all this up and put them in a wiki or blog as liviuc suggested 17:57 < razvanc>| that's another thing that would increase the incentivness to test 17:57 < lirakis>| yeah consolidated in a single location 17:57 < lirakis>| so that people arent hunting around different news posts or what not 17:57 < lirakis>| its all broken up on the main page now 17:58 < razvanc>| ok, then 17:59 < razvanc>| I already wrote down some ideas we discussed 17:59 < razvanc>| and as soon as we release the final version of OpenSIPS 2.1, we'll let you know 17:59 < razvanc>| so you can all give it a try 18:00 < razvanc>| thank you all for attending this meeting and for all your ideas 18:01 < lirakis>| thanks again for all the opensips teams hard work :)