Крым - двухуровневые номера с кухней
Приглашаем на отдых в наш Крым Новый коттеджи, 150 метров до моря Спецпредложение полулюкс - 1959 руб/сутки за 2 чел. http://полулюкс-недорого.рф __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Рассылки - наиболее эффективный способ распространения инфомрации
Р=@=C=C=Ы=Л=K=И Возможны индивидуальные выборки по отраслям и городам Обращайтесь по любым вопросам: 7(Ч 95 ) 5О 2 - 6 1 - 8 5 __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
По поводу недорогой растаможки текстиля
Здравствуйте! Я предлагаю услуги компании, которая занимается доставкой из Китая и таможенным оформлением : - тканей - текстиля Цены на услуги конкурентно способные. Сообщите, пожалуйста, были бы интересны Вам наши услуги морских контейнерных перевозок из Китая? с уважением, Александр. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Бумажные салфетки, туалетная бумага оптом
Продаем то что производим Бумажные салфетки, туалетную бумагу, бумажные полотенца - только оптовые отрузки! http://бумага-полотенца-салфетки.рф Собственное производство и склад в Московской области. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
+
Здравствуйте коллеги. Меня зовут Олег Владимирович и я профессиональный логист со стажем работаю в Швейцарской компания, предлагающей полный спектр логистических услуг. Наши преимущества: - Наличие собственного EORI номера, что позволяет нам оформлять экспортную декларацию от своего имени. - Отсутствие НДС при расчётах в Евросоюзе или России, что экономит время, силы, и деньги при закупках. - Регистрация в кантоне Цюрих, который не является оффшором и тем самым не попадает под пристальный контроль ЦентроБанка. - Оформление без КТС и индикативов. Пишите, даже если Вам просто даже если Вам просто нужна консультация. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Относительно свидетельства о допуске
Здравствуйте. Подскажите, пожалуйста, на все ли выполняемые строительные работы у Вас есть Свидетельство о Допуске? Если нет, то мы поможем получить допуски в СРО строителей, проектировщиков, изыскателей. Допуски СРО с рассрочкой платежа - дешево от 45000 руб., за 3 дня! Работаем по всей РОССИИ! В наличии имеются готовые фирмы с допусками СРО, всегда большой выбор! Оставьте заявку, если Вас заинтересовали наши услуги. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [PATCH] tests: switch to minitest
On Sat, Apr 26, 2014 at 12:07 AM, Eric Wong e...@80x24.org wrote: Ken Dreyer ktdre...@ktdreyer.com wrote: Ruby 1.9+ uses Minitest as the backend for Test::Unit. As of Minitest 5, the shim has lost some backwards compatibility. It is time to make the jump to minitest. Adjust the unicorn test suite to support Minitest 5's syntax. Thank you very much for taking a look at this. I was going to do it myself over the summer. I ran into some problems with our tests forking + minitest/autorun causing some problems due to at_exit usage. Hi Eric, Thanks very much for looking over my patch. I've taken a look at yahns and the changes you made there, and I've also been testing Unicorn here with my patch. I'm a bit confused about your comments regarding the problems with forking and minitest/autorun, because I'm not personally seeing test failures regarding forking and my patch. I am seeing one failure with the final assert in TestSocketHelper#test_bind_listen_unix_rebind, but I don't think that's a result of this, right? Would you mind pointing me in the right direction? - Ken __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [PATCH] tests: switch to minitest
Ken Dreyer ktdre...@ktdreyer.com wrote: I am seeing one failure with the final assert in TestSocketHelper#test_bind_listen_unix_rebind, but I don't think that's a result of this, right? That's a new failure for me. Sorry about the lack of info in my original response :x I'm failing on minitest 5.3.3, 4.7.5 seems fine, in fact. Below the output of make -j8 test-unit V=1 on my machine (Ruby 2.1), same failures on trunk, too (with minitest 5.3.3 installed) : : 1) Failure: : TestSocketHelper#test_bind_listen_unix_rebind [test/unit/test_socket_helper.rb:123]: : Failed assertion, no message given. snip : 1) Failure: : TestStreamInput#test_big_body_multi [test/unit/test_stream_input.rb:89]: : Failed assertion, no message given. : : : 2) Failure: : TestStreamInput#test_gets_long [test/unit/test_stream_input.rb:110]: : Failed assertion, no message given. : make: *** [test/unit/test_stream_input.rb] Error 1 snip : 1) Failure: : TestTeeInput#test_gets_short [test/unit/test_tee_input.rb:69]: : Failed assertion, no message given. : : : 2) Failure: : TestTeeInput#test_big_body_multi [test/unit/test_tee_input.rb:150]: : Failed assertion, no message given. : : : 3) Failure: : TestTeeInput#test_chunked_ping_pong [test/unit/test_tee_input.rb:216]: : Failed assertion, no message given. : : : 4) Failure: : TestTeeInput#test_chunked [test/unit/test_tee_input.rb:185]: : Failed assertion, no message given. : : : 5) Failure: : TestTeeInput#test_chunked_with_trailer [test/unit/test_tee_input.rb:244]: : Failed assertion, no message given. : : : 6) Failure: : TestTeeInput#test_gets_long [test/unit/test_tee_input.rb:50]: : Failed assertion, no message given. : : : 7) Failure: : TestTeeInput#test_read_in_full_if_content_length [test/unit/test_tee_input.rb:123]: : Failed assertion, no message given. : : 12 runs, 57449 assertions, 7 failures, 0 errors, 0 skips make: *** [test/unit/test_tee_input.rb] Error 1 __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
По поводу сотрудничества
Здравствуйте. Меня зовут Дмитрий Анатольевич, и я занимаюсь поставками постельного белья в магазины по Москве и Московской области. Мы продаем только элитные комплекты постельного белья высокого качества по цене от 2800 до 3300 рублей. Подскажите, пожалуйста, сколько комплектов Вы планируете заказать в этом месяце? Хочу напомнить, что кроме постельного белья у нас есть бамбуковые полотенца в подарочных упаковках. Только до конца декабря действуют специальные условия заключения договора. Сообщите, пожалуйста, Вам интересно ознакомиться с нашим специальным предложением? __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
По поводу сертификата на Ваше электрооборудование
Добрый день коллеги! Пожалуйста сообщите - на всё ли низковольтное оборудование у Вас имеются сертификаты? И все ли документы действующие? Мы предлагаем провести испытания электрооборудования от чайника до трансформаторных подстанций: - сертификаты, декларации и протоколы испытаний - высоковольтное оборудование - низковольтное оборудование - электромагнитная совместимость - организация испытаний А кроме этого предлагаем весь спектр услуг в области пожарной безопасности: - пожарный сертификат или сертификат пожарной безопасности - добровольная пожарная сертификация - декларация пожарной безопасности - пожарные исследования и испытания Если предложение интересно, пожалуйста, напишите на какие виды товаров нужен изготовить сертификат и я сообщу стоимость и время изготовления сертификата. с уважением Алена Денисовна. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
[ANN] unicorn 4.8.3 - the end of an era
Changes: This release updates documentation to reflect the migration of the mailing list to a new public-inbox[1] instance. This is necessary due to the impending RubyForge shutdown on May 15, 2014. The public-inbox address is: unicorn-pub...@bogomips.org (no subscription required, plain text only) ssoma[2] git archives: git://bogomips.org/unicorn-public browser-friendly archives: http://bogomips.org/unicorn-public/ Using, getting help for, and contributing to unicorn will never require any of the following: 1) non-Free software (including SaaS) 2) registration or sign-in of any kind 3) a real identity (we accept mail from Mixmaster) 4) a graphical user interface Nowadays, plain-text email is the only ubiquitous platform which meets all our requirements for communication. There is also one small bugfix to handle premature grandparent death upon initial startup. Most users are unaffected. [1] policy: http://public-inbox.org/ - git://80x24.org/public-inbox an archives first approach to mailing lists [2] mechanism: http://ssoma.public-inbox.org/ - git://80x24.org/ssoma some sort of mail archiver (using git) * http://unicorn.bogomips.org/ * unicorn-pub...@bogomips.org * git://bogomips.org/unicorn.git * http://unicorn.bogomips.org/NEWS.atom.xml -- Eric Wong __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [ANN] unicorn 4.8.3 - the end of an era
Hi Eric and all, I'm sorry if I'm the dumbest guy in the room, but I absolutely don't understand what I have to do to stay in the mailing list. Would you mind explaining what a regular subscriber has to do to keep receiving those emails in their inbox? Thanks -- Jérémy Lecour : http://jeremy.wordpress.com - http://twitter.com/jlecour __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [ANN] unicorn 4.8.3 - the end of an era
Jérémy Lecour jeremy.lec...@gmail.com wrote: Hi Eric and all, I'm sorry if I'm the dumbest guy in the room, but I absolutely don't understand what I have to do to stay in the mailing list. Sorry about the confusion, I'll try to clarify... Would you mind explaining what a regular subscriber has to do to keep receiving those emails in their inbox? You use ssoma[1] to to import mail into your inbox. This is like how slrnpull works with NNTP or getmail/fetchmail works with POP. It's only a one-way sync, but you can import it into an IMAP folder. Currently there's no SMTP delivery component, but I could probably set one up this week if there's enough demand for one. The subscriber list will be public, though. [1] http://ssoma.public-inbox.org/ Taken from http://unicorn.bogomips.org/ISSUES based on what I wrote in: http://bogomips.org/unicorn-public/m/20140421183728.ga27...@dcvr.yhbt.net.html URL=git://bogomips.org/unicorn-public LISTNAME=unicorn # to initialize a maildir (this may be a new or existing maildir, # ssoma will not touch existing messages) # If you prefer mbox, use mbox:/path/to/mbox as the last argument # You may also use imap://$MAILSERVER/INBOX for an IMAP account # or imaps:// for an IMAPS account, as well. ssoma add $LISTNAME $URL maildir:/path/to/maildir # read with your favorite MUA (only using mutt as an example) mutt -f /path/to/maildir # (or /path/to/mbox) # to keep your mbox or maildir up-to-date, periodically run the following: ssoma sync $LISTNAME # your MUA may modify and delete messages from the maildir or mbox, # this does not affect ssoma functionality at all # to sync all your ssoma subscriptions ssoma sync # You may wish to sync in your cronjob ssoma sync --cron __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [ANN] unicorn 4.8.3 - the end of an era
+1, pushing to ssoma when emails standards empire is very strong is way too much... Another mailing list in another server should be created... regards, bráulio On Wed, May 7, 2014 at 5:05 AM, Eric Wong e...@80x24.org wrote: Changes: This release updates documentation to reflect the migration of the mailing list to a new public-inbox[1] instance. This is necessary due to the impending RubyForge shutdown on May 15, 2014. The public-inbox address is: unicorn-pub...@bogomips.org (no subscription required, plain text only) ssoma[2] git archives: git://bogomips.org/unicorn-public browser-friendly archives: http://bogomips.org/unicorn-public/ Using, getting help for, and contributing to unicorn will never require any of the following: 1) non-Free software (including SaaS) 2) registration or sign-in of any kind 3) a real identity (we accept mail from Mixmaster) 4) a graphical user interface Nowadays, plain-text email is the only ubiquitous platform which meets all our requirements for communication. There is also one small bugfix to handle premature grandparent death upon initial startup. Most users are unaffected. [1] policy: http://public-inbox.org/ - git://80x24.org/public-inbox an archives first approach to mailing lists [2] mechanism: http://ssoma.public-inbox.org/ - git://80x24.org/ssoma some sort of mail archiver (using git) * http://unicorn.bogomips.org/ * unicorn-pub...@bogomips.org * git://bogomips.org/unicorn.git * http://unicorn.bogomips.org/NEWS.atom.xml -- Eric Wong __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying -- Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia P.R. Sarkar EITA - Educação, Informação e Tecnologias para Autogestão http://cirandas.net/brauliobo http://eita.org.br Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação da Mente Macrocósmica, e todas as entidades estão sendo criadas, preservadas e destruídas nas fases de extroversão e introversão do fluxo imaginativo cósmico. No âmbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa é a única proprietária daquilo que ela imagina, e ninguém mais. Quando um ser humano criado mentalmente caminha por um milharal também imaginado, a pessoa imaginada não é a propriedade desse milharal, pois ele pertence ao indivíduo que o está imaginando. Este universo foi criado na imaginação de Brahma, a Entidade Suprema, por isso a propriedade deste universo é de Brahma, e não dos microcosmos que também foram criados pela imaginação de Brahma. Nenhuma propriedade deste mundo, mutável ou imutável, pertence a um indivíduo em particular; tudo é o patrimônio comum de todos. Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
handling SMTP subscribers to public-inboxen
Alejandro Riera ari...@gmail.com wrote: Lin Jen-Shin (godfat) god...@godfat.org wrote: I guess I am too lazy/busy to dig into this, so an SMTP would be great for me. I am also ok to be listed as a public subscriber. Same here, SMTP sounds great :) Copying discussion to the m...@public-inbox.org list... Thanks all for your response. I'll set up something on the ssoma side which replays messages to subscribers. This will make it easy to fork/migrate subscription lists to different servers. I'll probably use VERP[1] to handle bounces. However, most of the normal bounce processing mechanisms (including VERP) seems to leave users open to malicious unsubscribes. In other words, an attacker may fake bounce messages to take users off a list (VERP or not). The reference documentation for VERP just makes faking bounces trivially easy. So I think we need to make the bounce address unguessable by the attacker. Perhaps using something like Crypt-VERPString[2] is necessary? Keep in mind somebody sniffing your plain-text SMTP traffic will (and will always) be able to extract the bounce address; so this only increases the difficulty level to do a malicious unsubscribe. The secret key should be able to change when migrating between servers (or if compromised) without being a big problem, as most bounces occur hours/days within delivery time; not months/years afterwards. [1] http://cr.yp.to/proto/verp.txt [2] http://search.cpan.org/dist/Crypt-VERPString __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [ANN] unicorn 4.8.3 - the end of an era
On Wed, May 7, 2014 at 2:46 AM, Eric Wong e...@80x24.org wrote: Jérémy Lecour jeremy.lec...@gmail.com wrote: Would you mind explaining what a regular subscriber has to do to keep receiving those emails in their inbox? You use ssoma[1] to to import mail into your inbox. This is like how slrnpull works with NNTP or getmail/fetchmail works with POP. It's only a one-way sync, but you can import it into an IMAP folder. Currently there's no SMTP delivery component, but I could probably set one up this week if there's enough demand for one. The subscriber list will be public, though. Is there some compelling reason why the mailing list simply cannot be moved to another provider? IMHO your users and fellow developers shouldn't have to do anything other than change the submission address. I respect your desire to power the communication platform with free software (and I'm sure this can still be done with Mailman or whatever), but keep in mind the practical reality of our time, where most of us these days are now comfortably using Webmail or or POP/IMAP against a remote server that's not under the user's control and have no desire to implement yet another communication conduit. Thanks, --Michael __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [ANN] unicorn 4.8.3 - the end of an era
Michael Fischer mfisc...@zendesk.com wrote: Is there some compelling reason why the mailing list simply cannot be moved to another provider? IMHO your users and fellow developers shouldn't have to do anything other than change the submission address. We would need to migrate again if/when that provider goes dead or service starts deteriorating. Ease-of-migration and being forkable again in the future was the top priority. If I'm hit by a bus or start allowing too much spam, it should be trivially easy to migrate the project[1] and all its archives and infrastructure. I respect your desire to power the communication platform with free software (and I'm sure this can still be done with Mailman or whatever), but keep in mind the practical reality of our time, where most of us these days are now comfortably using Webmail or or POP/IMAP against a remote server that's not under the user's control and have no desire to implement yet another communication conduit. I will probably take the addresses of active subscribers who've posted here[2] imported into the new delivery system, even. It would be great to be able to make the list of ML subscribers public, too, to ensure forkability. I'm not sure how the lurkers will react to that, though... [1] of course, whoever takes over may not be a Free Software zealot like myself. [2] those addresses are already public, but lurkers will probably have to resubscribe (or use ssoma or the Atom feed). __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Реклама, с оплатой только за обращения
Здравствуйте! Наше агентство занимается рекламой в интернете, с оплатой за звонки. Наши преимущества: - Вы платите только за обращения, длившиеся не менее 30 сек. - Подробный отчет по совершенным звонкам и списаниям средств доступен в личном кабинете. Схема работы с нами: - Вы пополняете баланс в личном кабинете. - Мы рекламируем Ваше рекламное объявление. - При поступлении звонков - с Вашего баланса списываются деньги за каждый поступивший звонок. Стоимость одного звонка составляет от 300 до 500 руб. (в зависимости от сферы Вашего бизнеса). Обращайтесь по любым вопросам по телефону: [ 49 5] 545 1Ч 92 __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [ANN] public-inbox - archives first approach to mailing lists
Eric Wong normalper...@yhbt.net wrote: Feedback comments/greatly appreciated: http://public-inbox.org/ We only have a few days left before this list goes away. If needed, there'll be an SMTP replayer to do push delivery like a normal mailing list, but anybody may also run the delivery-only service, too. I'm still not sure if I want to run one; if I did, I might would take the drastic step of making the subscribers list public so anybody may takeover the distribution list[1]. Right now only I (and Rubyforge admins) have access to the subscribers list on RubyForge, (but I hate website logins, so I never look at it :P). I don't feel like anybody should have the exclusive privilege of knowing who subscribes to a list. I may also run a read-only NNTP server (not sure how to enforce a Cc:-all workflow if posting were allowed). AFAIK, we don't have many ML subscribers anyways, and VERP seems reasonable... I do get a lot of rubyforge bounce messages from spam bots attempting to subscribe (and I think some of them succeed, even). So maybe attempting to do SMTP delivery isn't worth it with public-inbox... [1] Obviously I know it'd be easy for spammers to harvest lurker this way, but they already harvest addresses from every poster. I suspect most folks on ML have decent spam filters these days. (and if you don't, I use and recommend SpamAssassin) __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [ANN] public-inbox - archives first approach to mailing lists
Eric Wong normalper...@yhbt.net wrote: I'm still not sure if I want to run one; if I did, I might would take the drastic step of making the subscribers list public so anybody may takeover the distribution list[1]. Right now only I (and Rubyforge admins) have access to the subscribers list on RubyForge, (but I hate website logins, so I never look at it :P). I don't feel like anybody should have the exclusive privilege of knowing who subscribes to a list. I should clarify: I won't publish nor import the current subscribers list. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: Does unicorn waits after_work to consider a worker ready?
Thanks very much Eric. Just looked at the Unicorn's source code and the answer to the subject's question is yes. Also, I have made the configuration a little shorter, and made worker killer optional: https://gist.github.com/brauliobo/11298486 regards, bráulio On Fri, May 2, 2014 at 8:43 PM, Eric Wong normalper...@yhbt.net wrote: Bráulio Bhavamitra brau...@eita.org.br wrote: That's the ruby design, as the heap only grows, so with a request that loads a lot of data the heap will grow big and never shrink. http://izumi.plan99.net/blog/index.php/2007/10/12/how-the-ruby-heap-is-implemented/ That's ancient, I was waiting for Hongli to reply... Ruby 2.1 changes that? We will soon migrate to ruby 2.1, but we are not ready for it yet. Yes, Ruby freed object slots since the 1.9 days, I think. Anyways, I've maintained a bunch of Ruby apps and I've gotten _all_ of them have stable memory usage. Often I needed to fix bugs in Ruby itself or other gems/libraries to get there, though! One basic rule (which I learned as a Perl hacker): do not slurp. Limit the size of data you work with and break things into smaller chunks if necessary (e.g. data from client uploads or database/API responses). Things like running a SELECT without LIMIT in SQL should raise red flags immediately. -- Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia P.R. Sarkar EITA - Educação, Informação e Tecnologias para Autogestão http://cirandas.net/brauliobo http://eita.org.br Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação da Mente Macrocósmica, e todas as entidades estão sendo criadas, preservadas e destruídas nas fases de extroversão e introversão do fluxo imaginativo cósmico. No âmbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa é a única proprietária daquilo que ela imagina, e ninguém mais. Quando um ser humano criado mentalmente caminha por um milharal também imaginado, a pessoa imaginada não é a propriedade desse milharal, pois ele pertence ao indivíduo que o está imaginando. Este universo foi criado na imaginação de Brahma, a Entidade Suprema, por isso a propriedade deste universo é de Brahma, e não dos microcosmos que também foram criados pela imaginação de Brahma. Nenhuma propriedade deste mundo, mutável ou imutável, pertence a um indivíduo em particular; tudo é o patrimônio comum de todos. Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [RFC/PATCH] http_server: handle premature grandparent death
Eric Wong e...@80x24.org wrote: This may fix the following issue: https://github.com/kostya/eye/issues/49 (which I was notified of privately via email) Confirmed to be the case privately. Pushed. Will push and tag 4.8.3 this weekend (along with mailing list change). __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
[RFC/PATCH] http_server: handle premature grandparent death
When daemonizing, it is possible for the grandparent to be terminated by another process before the master can notify it. Do not abort the master in this case. This may fix the following issue: https://github.com/kostya/eye/issues/49 (which I was notified of privately via email) --- Will push and tag 4.8.3 this weekend (along with mailing list change). lib/unicorn/http_server.rb | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb index 21cb9a1..a0ca302 100644 --- a/lib/unicorn/http_server.rb +++ b/lib/unicorn/http_server.rb @@ -272,7 +272,11 @@ def join proc_name 'master' logger.info master process ready # test_exec.rb relies on this message if @ready_pipe - @ready_pipe.syswrite($$.to_s) + begin +@ready_pipe.syswrite($$.to_s) + rescue = e +logger.warn(grandparent died too soon?: #{e.message} (#{e.class})) + end @ready_pipe = @ready_pipe.close rescue nil end begin -- Eric Wong __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: Does unicorn waits after_work to consider a worker ready?
Bráulio Bhavamitra brau...@eita.org.br wrote: That's the ruby design, as the heap only grows, so with a request that loads a lot of data the heap will grow big and never shrink. http://izumi.plan99.net/blog/index.php/2007/10/12/how-the-ruby-heap-is-implemented/ That's ancient, I was waiting for Hongli to reply... Ruby 2.1 changes that? We will soon migrate to ruby 2.1, but we are not ready for it yet. Yes, Ruby freed object slots since the 1.9 days, I think. Anyways, I've maintained a bunch of Ruby apps and I've gotten _all_ of them have stable memory usage. Often I needed to fix bugs in Ruby itself or other gems/libraries to get there, though! One basic rule (which I learned as a Perl hacker): do not slurp. Limit the size of data you work with and break things into smaller chunks if necessary (e.g. data from client uploads or database/API responses). Things like running a SELECT without LIMIT in SQL should raise red flags immediately. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: Does unicorn waits after_work to consider a worker ready?
On Thu, May 1, 2014 at 3:18 PM, Eric Wong normalper...@yhbt.net wrote: Bráulio Bhavamitra brau...@eita.org.br wrote: On Wed, Apr 30, 2014 at 10:33 PM, Eric Wong normalper...@yhbt.net wrote: You do not need to sleep before warmup. Warm up requests are expensive. This sleep based on worker.nr makes warm up happen on worker by worker, not all at once. The worker might just be processing the expensive request in a user-visible state, correct? Modern Linux (and I expect most OSes people use nowadays) are great at dividing CPU-intensive work fairly. Of course, if there's disk intensive load, that's a different case. Yeah, I see that frequently on top. But if all workers are warming up at once, say 10 workers, then the old workers will slow down to serve requests, as CPU will be heavily used by the warming up workers. That's is the main reason to slow down warm up. The master never pushes requests to a worker. The key to unicorn is the workers pull requests directly from the kernel queue. The master is never involved with distributing requests to the worker. Nice! So the kernel sees that worker is sleeping and should not pass a request to it, I guess. Almost, but the kernel socket queueing doesn't really see. It's more like the kernel just puts food on the table continuously without caring if workers are eating. Sometimes the table overflows and food gets thrown in the trash when the workers are all sleeping or full. Interesting... So the queue know about sleeping workers, but we have to prevent that all workers are sleeping at the same time. On a side note, your config is depressingly long and complex : Try to make your apps run well without needing unicorn-worker-killer, at least... That's the ruby fate... Apps inevitably grow memory over time. Only if you let bugs stay around. If you find bugs in Ruby or the libs you use, please report and help get them fixed. Ruby 2.1 had some corner cases, true, but we need to help fight against bloated apps. That's the ruby design, as the heap only grows, so with a request that loads a lot of data the heap will grow big and never shrink. http://izumi.plan99.net/blog/index.php/2007/10/12/how-the-ruby-heap-is-implemented/ Ruby 2.1 changes that? We will soon migrate to ruby 2.1, but we are not ready for it yet. ...and bloated email signatures :P :P -- Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia P.R. Sarkar EITA - Educação, Informação e Tecnologias para Autogestão http://cirandas.net/brauliobo http://eita.org.br Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação da Mente Macrocósmica, e todas as entidades estão sendo criadas, preservadas e destruídas nas fases de extroversão e introversão do fluxo imaginativo cósmico. No âmbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa é a única proprietária daquilo que ela imagina, e ninguém mais. Quando um ser humano criado mentalmente caminha por um milharal também imaginado, a pessoa imaginada não é a propriedade desse milharal, pois ele pertence ao indivíduo que o está imaginando. Este universo foi criado na imaginação de Brahma, a Entidade Suprema, por isso a propriedade deste universo é de Brahma, e não dos microcosmos que também foram criados pela imaginação de Brahma. Nenhuma propriedade deste mundo, mutável ou imutável, pertence a um indivíduo em particular; tudo é o patrimônio comum de todos. Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Does unicorn waits after_work to consider a worker ready?
Hello all, I had to use `sleep` (see https://gist.github.com/brauliobo/11298486) to make rolling restart on my unicorn configuration. But I'm worried if unicorn consider the worker ready for request even before after_fork finishes. Could you say if that is true? regards, bráulio -- Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia P.R. Sarkar EITA - Educação, Informação e Tecnologias para Autogestão http://cirandas.net/brauliobo http://eita.org.br Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação da Mente Macrocósmica, e todas as entidades estão sendo criadas, preservadas e destruídas nas fases de extroversão e introversão do fluxo imaginativo cósmico. No âmbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa é a única proprietária daquilo que ela imagina, e ninguém mais. Quando um ser humano criado mentalmente caminha por um milharal também imaginado, a pessoa imaginada não é a propriedade desse milharal, pois ele pertence ao indivíduo que o está imaginando. Este universo foi criado na imaginação de Brahma, a Entidade Suprema, por isso a propriedade deste universo é de Brahma, e não dos microcosmos que também foram criados pela imaginação de Brahma. Nenhuma propriedade deste mundo, mutável ou imutável, pertence a um indivíduo em particular; tudo é o patrimônio comum de todos. Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: Does unicorn waits after_work to consider a worker ready?
Bráulio Bhavamitra brau...@eita.org.br wrote: Hello all, I had to use `sleep` (see https://gist.github.com/brauliobo/11298486) to make rolling restart on my unicorn configuration. Btw, rack 1.6 (when released) should have a native warmup method thanks to Aman. It's currently in rack.git. But I'm worried if unicorn consider the worker ready for request even before after_fork finishes. Could you say if that is true? You do not need to sleep before warmup. The master never pushes requests to a worker. The key to unicorn is the workers pull requests directly from the kernel queue. The master is never involved with distributing requests to the worker. On a side note, your config is depressingly long and complex : Try to make your apps run well without needing unicorn-worker-killer, at least... __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: Workers reaped with SIGABRT - how to debug?
Henrik Nyh hen...@barsoom.se wrote: It was simply that monit did a kill -6 (SIBABRT) when the process used too much memory, so we bumped that limit for now. D'oh. We've yet to research why it used that much memory. Thanks for the followup. Unfortunately the RGenGC in Ruby 2.1.x uses more memory than 2.0 did (but GC is faster :). Sam wrote an article about it here: http://samsaffron.com/archive/2014/04/08/ruby-2-1-garbage-collection-ready-for-production We (ruby-core devs) will try to reduce memory for 2.2 without performance regressions. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Re: [PATCH] tests: switch to minitest
Ken Dreyer ktdre...@ktdreyer.com wrote: Ruby 1.9+ uses Minitest as the backend for Test::Unit. As of Minitest 5, the shim has lost some backwards compatibility. It is time to make the jump to minitest. Adjust the unicorn test suite to support Minitest 5's syntax. Thank you very much for taking a look at this. I was going to do it myself over the summer. I ran into some problems with our tests forking + minitest/autorun causing some problems due to at_exit usage. We probably need to workaround, I already did something for yahns which we can reuse[1] in unicorn. Minitest versions 4 and below do not support the newer Minitest::Test class that arrived in version 5. For that case, use the MiniTest::Unit::TestCase class as a fallback. For yahns, I did the following: --- git://yhbt.net/yahns -- test/helper.rb -- gem 'minitest' begin # favor minitest 5 require 'minitest' Testcase = Minitest::Test mtobj = Minitest rescue NameError, LoadError # but support minitest 4 require 'minitest/unit' Testcase = Minitest::Unit::TestCase mtobj = MiniTest::Unit.new end # Not using minitest/autorun because that doesn't guard against redundant # extra runs with fork. We cannot use exit! in the tests either # (since users/apps hosted on yahns _should_ expect exit, not exit!). TSTART_PID = $$ at_exit do # skipping @@after_run stuff in minitest since we don't need it case $! when nil, SystemExit exit(mtobj.run(ARGV)) if $$ == TSTART_PID end end 8 --- I'd appreciate a second opinion on what I did with yahns above, but it should work with unicorn. Can you take a look at integrating+fixing those cases which fork? Thanks again. Please keep me in the CC as I'm not subscribed to the unicorn email list. No problem. Also keeping unicorn-pub...@bogomips.org Cc-ed since that's the new public-inbox[2] address and reply-all will be the norm there. Hopefully public-inbox can encourage more drive-by contributors like you :) [1] - Fwiw, I give myself permission to relicense any yahns GPLv3+ test code I wrote to (GPLv2+ || Ruby 1.8 license) for unicorn. [2] - http://public-inbox.org/ ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Re: [PATCH] tests: switch to minitest
Eric Where are you now. are you busy ? if u don't have any credit card to verify ur identity then u can create a free acc here, u dont need any cc or anything...just add ur email. I have profile here too but not often i use it. but for u i will login there today.. http://clara9024.meetupsecurely.com/ my user id : clara9024 go to my profile link and create a free acc..send a message there..i will reply after few minutes. thanks. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: your mail
Здравствуйте коллеги. Меня зовут Олег и я профессиональный логист со стажем работаю в Швейцарской компания, предлагающей полный спектр логистических услуг. Наши преимущества: - Наличие собственного EORI номера, что позволяет нам оформлять экспортную декларацию от своего имени. - Отсутствие НДС при расчётах в Евросоюзе или России, что экономит время, силы, и деньги при закупках. - Регистрация в кантоне Цюрих, который не является оффшором и тем самым не попадает под пристальный контроль ЦБ. - Оформление без КТС и индикативов. Пишите, даже если Вам просто надо проконсультироваться. __ http://bogomips.org/unicorn-public/ - unicorn-pub...@bogomips.org please quote as little as necessary when replying
Rolling restart configuration
Hello all, I would like to invite you to review the configuration I've done focusing on a seamless restart for the user. Please follow https://gist.github.com/brauliobo/11298486 I've used Rack::MockRequest to make a request to the worker's homepage, warming it up and letting it ready for requests. best regards, bráulio -- Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia P.R. Sarkar EITA - Educação, Informação e Tecnologias para Autogestão http://cirandas.net/brauliobo http://eita.org.br Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação da Mente Macrocósmica, e todas as entidades estão sendo criadas, preservadas e destruídas nas fases de extroversão e introversão do fluxo imaginativo cósmico. No âmbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa é a única proprietária daquilo que ela imagina, e ninguém mais. Quando um ser humano criado mentalmente caminha por um milharal também imaginado, a pessoa imaginada não é a propriedade desse milharal, pois ele pertence ao indivíduo que o está imaginando. Este universo foi criado na imaginação de Brahma, a Entidade Suprema, por isso a propriedade deste universo é de Brahma, e não dos microcosmos que também foram criados pela imaginação de Brahma. Nenhuma propriedade deste mundo, mutável ou imutável, pertence a um indivíduo em particular; tudo é o patrimônio comum de todos. Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[PATCH] tests: switch to minitest
Ruby 1.9+ uses Minitest as the backend for Test::Unit. As of Minitest 5, the shim has lost some backwards compatibility. It is time to make the jump to minitest. Adjust the unicorn test suite to support Minitest 5's syntax. Minitest versions 4 and below do not support the newer Minitest::Test class that arrived in version 5. For that case, use the MiniTest::Unit::TestCase class as a fallback. --- Please keep me in the CC as I'm not subscribed to the unicorn email list. setup.rb | 12 test/exec/test_exec.rb| 16 test/test_helper.rb | 13 ++--- test/unit/test_configurator.rb| 8 +++- test/unit/test_droplet.rb | 4 ++-- test/unit/test_http_parser.rb | 2 +- test/unit/test_http_parser_ng.rb | 12 ++-- test/unit/test_http_parser_xftrust.rb | 2 +- test/unit/test_request.rb | 2 +- test/unit/test_response.rb| 2 +- test/unit/test_server.rb | 2 +- test/unit/test_signals.rb | 2 +- test/unit/test_sni_hostnames.rb | 4 ++-- test/unit/test_socket_helper.rb | 2 +- test/unit/test_stream_input.rb| 4 ++-- test/unit/test_tee_input.rb | 4 ++-- test/unit/test_upload.rb | 4 ++-- test/unit/test_util.rb| 2 +- unicorn.gemspec | 1 + 19 files changed, 50 insertions(+), 48 deletions(-) diff --git a/setup.rb b/setup.rb index cf1abd9..42ce95c 100644 --- a/setup.rb +++ b/setup.rb @@ -1458,14 +1458,10 @@ class Installer return end $stderr.puts 'Running tests...' if verbose? -begin - require 'test/unit' -rescue LoadError - setup_rb_error 'test/unit cannot loaded. You need Ruby 1.8 or later to invoke this task.' -end -runner = Test::Unit::AutoRunner.new(true) -runner.to_run TESTDIR -runner.run +$dir = File.dirname(File.expand_path(__FILE__)) +$LOAD_PATH.unshift $dir +$LOAD_PATH.unshift $dir + '/lib/' +Dir.glob ./test/**/test_*.rb, method(:require) end # diff --git a/test/exec/test_exec.rb b/test/exec/test_exec.rb index 10a1bae..dd13931 100644 --- a/test/exec/test_exec.rb +++ b/test/exec/test_exec.rb @@ -20,7 +20,7 @@ unless try_require('rack') do_test = false end -class ExecTest Test::Unit::TestCase +class ExecTest Minitest::Test trap(:QUIT, 'IGNORE') HI = -EOS @@ -316,7 +316,7 @@ EOF assert(system($unicorn_bin, -h), help text returns true) end assert_equal 0, File.stat(test_stderr.#$$.log).size -assert_not_equal 0, File.stat(test_stdout.#$$.log).size +refute_equal 0, File.stat(test_stdout.#$$.log).size lines = File.readlines(test_stdout.#$$.log) # Be considerate of the on-call technician working from their @@ -386,7 +386,7 @@ EOF wait_for_file(old_file) wait_for_file(pid_file) new_pid = File.read(pid_file).to_i -assert_not_equal current_pid, new_pid +refute_equal current_pid, new_pid assert_equal current_pid, File.read(old_file).to_i results = retry_hit([http://#{@addr}:#{@port}/;, http://#{@addr}:#{port2}/;]) @@ -448,7 +448,7 @@ EOF wait_for_file(old_file) wait_for_file(pid_file) new_pid = File.read(pid_file).to_i -assert_not_equal current_pid, new_pid +refute_equal current_pid, new_pid assert_equal current_pid, File.read(old_file).to_i results = retry_hit([http://#{@addr}:#{@port}/;]) assert_equal String, results[0].class @@ -520,7 +520,7 @@ EOF results = retry_hit([http://#{@addr}:#{@port}/;]) assert_equal String, results[0].class worker_pid = results[0].to_i -assert_not_equal pid, worker_pid +refute_equal pid, worker_pid s = UNIXSocket.new(tmp.path) s.syswrite(GET / HTTP/1.0\r\n\r\n) results = '' @@ -755,7 +755,7 @@ EOF assert_equal String, results.class end -assert_not_equal 0, new_log.size +refute_equal 0, new_log.size reexec_usr2_quit_test(pid, pid_file) end @@ -777,7 +777,7 @@ EOF assert_equal String, results[0].class wait_for_file(pid_file) new_pid = File.read(pid_file).to_i -assert_not_equal pid, new_pid +refute_equal pid, new_pid pid, status = Process.waitpid2(pid) assert status.success?, original process exited successfully Process.kill(0, new_pid) @@ -845,7 +845,7 @@ EOF File.truncate(log.path, 0) wait_for_file(pid_file) pid = File.read(pid_file).to_i -assert_not_equal orig_pid, pid +refute_equal orig_pid, pid curr_fds = `ls -l /proc/#{pid}/fd`.split(/\n/) assert $?.success? diff --git a/test/test_helper.rb b/test/test_helper.rb index c65f2f3..db7def1 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -18,7 +18,7 @@ ENV['NO_PROXY'] ||= ENV['UNICORN_TEST_ADDR'] || '127.0.0.1' DEFAULT_TRIES = 1000 DEFAULT_RES = 0.2 -require 'test/unit' +require
Re: Is there a cleaner way of hooking into the event loop?
Sam Saffron sam.saff...@gmail.com wrote: I am spawning sidekiqs from the master process so I share memory better, added this patch https://github.com/discourse/discourse/commit/4aaedb82d09d53159a99c3c94c0232c3cf5b0725 Thing is I need to be in the master thread for both checks and spawning cause of this https://bugs.ruby-lang.org/issues/9751 I'll try to take a look at that, soon[1] Is there a cleaner way to hook in? Not really. I can't promise no changes, but at least you told us about it. I don't want to encourage apps written specifically for unicorn and defeating the point of Rack, either; but I don't imagine unicorn changing much[2] until Rack 2.0 (if that ever happens?) [1] - Most of my energy is devoted public-inbox.org right now. With the imminent death of the Rubyforge lists, Free Software extremist-console-junkies like me need to keep distributed communication alive and usable to non-GUI users. [2] - Obvious the mailing list will change :P And probably some wankery in providing an nginx alternative via yahns[3], but this won't change unicorn itself. [3] - allowing for lazy buffering on streaming output and selectively handling MT-safe endpoints yahns, while proxying non-MT-safe endpoints to unicorn... ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Is there a cleaner way of hooking into the event loop?
I am spawning sidekiqs from the master process so I share memory better, added this patch https://github.com/discourse/discourse/commit/4aaedb82d09d53159a99c3c94c0232c3cf5b0725 Thing is I need to be in the master thread for both checks and spawning cause of this https://bugs.ruby-lang.org/issues/9751 Is there a cleaner way to hook in? ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Is there a cleaner way of hooking into the event loop?
Sam Where are you now. are you busy ? if u don't have any credit card to verify ur identity then u can create a free acc here, u dont need any cc or anything...just add ur email. I have profile here too but not often i use it. but for u i will login there today.. http://clara9031.wemeetsafely.com/ my user id : clara9031 go to my profile link and create a free acc..send a message there..i will reply after few minutes. thanks. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Is there a cleaner way of hooking into the event loop?
like a significant premature optimization. Funny, tell that to the people freaking out about Discourse's minimum RAM requirements :), it clearly saves 50-60MB on PSS which is pretty handy. On Wed, Apr 23, 2014 at 11:30 AM, Michael Fischer mfisc...@zendesk.com wrote: On Tue, Apr 22, 2014 at 6:21 PM, Sam Saffron sam.saff...@gmail.com wrote: I am spawning sidekiqs from the master process so I share memory better, added this patch https://github.com/discourse/discourse/commit/4aaedb82d09d53159a99c3c94c0232c3cf5b0725 Thing is I need to be in the master thread for both checks and spawning cause of this https://bugs.ruby-lang.org/issues/9751 Is there a cleaner way to hook in? From an operational perspective this seems like a significant premature optimization. I'd think twice before doing it. IME you really don't want asynchronous job handling in the same process space as a synchronous preforking webserver. Best to keep your concerns separated. And RAM is cheap. --Michael ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[ANN] public-inbox - archives first approach to mailing lists
Feedback comments/greatly appreciated: http://public-inbox.org/ I'm importing the unicorn ML archives, now, so all of our future emails will be archived with this. If needed, there'll be an SMTP replayer to do push delivery like a normal mailing list, but anybody may also run the delivery-only service, too. AFAIK, we don't have many ML subscribers anyways, and VERP seems reasonable... ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[PATCH] add slrnpull.conf example for gmane archives
In case anybody else wants to verify/check the archive or use this for other projects, we'll document what we did here. --- Note: for the public-inbox import, I also merged in some emails from my personal archives which gmane didn't catch. archive/.gitignore| 3 +++ archive/slrnpull.conf | 4 2 files changed, 7 insertions(+) create mode 100644 archive/.gitignore create mode 100644 archive/slrnpull.conf diff --git a/archive/.gitignore b/archive/.gitignore new file mode 100644 index 000..bd7ad57 --- /dev/null +++ b/archive/.gitignore @@ -0,0 +1,3 @@ +/data +/news +/requests diff --git a/archive/slrnpull.conf b/archive/slrnpull.conf new file mode 100644 index 000..fcfcafe --- /dev/null +++ b/archive/slrnpull.conf @@ -0,0 +1,4 @@ +# group_name maxexpire headers_only +gmane.comp.lang.ruby.unicorn.general 10 10 0 + +# usage: slrnpull -d $PWD -h news.gmane.org --no-post -- Eric Wong ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Workers reaped with SIGABRT - how to debug?
Henrik, we had the same problem after upgrading to Ruby 2.1.1. My coworker Tieg Zaharia tracked it down to this bug with BigDecimal#to_d: https://bugs.ruby-lang.org/issues/9657 He discusses a workaround (using BigDecimal coercion instead of #to_d). Worked for us. Thank you! We'll look into that. We've definitely seen that error in CI. I couldn't find any segfaults in our production logs by the way, but I'm still not sure exactly where they would go. Have looked in our production.log (at the default prod log level) and the unicorn.log. (Sidenote: I think you have to CC everyone, not just reply to the list, or it only goes to the web archives.) ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: [PATCH] Kill lazy workers with TERM before KILL
Camilo Lopez cam...@camilolopez.com wrote: We want to know what was going on with a lazy worker, KILL is un-trappable so we are sending TERM instead, then to make sure the process really dies we are KILLing a second later. Sorry, no. I've rejected similar patches in the past. If your process is capable of responding to SIGTERM, the Ruby VM is still in good shape and capable of doing timeouts within itself. Use application timeouts, which work without modifying unicorn (and work on servers other than unicorn): http://unicorn.bogomips.org/Application_Timeouts.html ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Workers reaped with SIGABRT - how to debug?
We get errors like this one a few times a day: Apr 13 12:16:31 app1 unicorn.log: E, [2014-04-13T12:16:31.302011 #17269] ERROR -- : reaped #Process::Status: pid 17300 SIGABRT (signal 6) worker=2 We use Unicorn 4.8.2, Ruby 2.1.1 and a Ruby on Rails app. It doesn't seem to happen at any obvious time, like during or just after deploys. We were previously on Ruby 1.9.3 with Unicorn 4.8.0. Then we had almost the same issue but with SIGIOT, I believe. Then we upgraded Ruby to 2.1.1. I believe that's when it changed to SIGABRT. Then we upgraded Unicorn to 4.8.2 with no improvement. We're not sure how to debug this - any suggestions on either what the problem could be, or how to debug it? ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Workers reaped with SIGABRT - how to debug?
Henrik Nyh hen...@barsoom.se wrote: We get errors like this one a few times a day: Apr 13 12:16:31 app1 unicorn.log: E, [2014-04-13T12:16:31.302011 #17269] ERROR -- : reaped #Process::Status: pid 17300 SIGABRT (signal 6) worker=2 We use Unicorn 4.8.2, Ruby 2.1.1 and a Ruby on Rails app. It doesn't seem to happen at any obvious time, like during or just after deploys. We were previously on Ruby 1.9.3 with Unicorn 4.8.0. Then we had almost the same issue but with SIGIOT, I believe. Then we upgraded Ruby to 2.1.1. I believe that's when it changed to SIGABRT. Then we upgraded Unicorn to 4.8.2 with no improvement. We're not sure how to debug this - any suggestions on either what the problem could be, or how to debug it? This is may be a bug in a C extension RubyGem or even Ruby itself. Do you get core dumps + backtraces or any other error messages in the logs? Which OS/distribution is this? Since you see SIGABRT/SIGIOT and not SIGSEGV, you might be crashing inside the SIGSEGV handler of Ruby itself. Can you also try --enable-debug-env when you ./configure Ruby? Thanks in advance for any more info you can provide! (Btw, please keep everybody Cc:-ed since the mailing list is going in that direction, and rubyforge.org isn't very reliable in its final days. New ML announcement in a few days). ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Workers reaped with SIGABRT - how to debug?
On Tue, Apr 15, 2014 at 10:43 AM, Eric Wong normalper...@yhbt.net wrote: This is may be a bug in a C extension RubyGem or even Ruby itself. Do you get core dumps + backtraces or any other error messages in the logs? You'd expect this to be in the Rails app's production.log, right? We added that to our logging service this morning - we'll check it the next time this error happens. Maybe we could also try to dig it up from archived logs. Which OS/distribution is this? Ubuntu 12.04.1 LTS Since you see SIGABRT/SIGIOT and not SIGSEGV, you might be crashing inside the SIGSEGV handler of Ruby itself. Can you also try --enable-debug-env when you ./configure Ruby? I guess that would output more details to the Rails production.log in the event of a crash? Will look into that. Thanks in advance for any more info you can provide! Thanks so much for the help! Much appreciated. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[PATCH] Kill lazy workers with TERM before KILL
We want to know what was going on with a lazy worker, KILL is un-trappable so we are sending TERM instead, then to make sure the process really dies we are KILLing a second later. --- lib/unicorn/http_server.rb | 31 +++ lib/unicorn/worker.rb | 7 ++- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb index 21cb9a1..1b2a33b 100644 --- a/lib/unicorn/http_server.rb +++ b/lib/unicorn/http_server.rb @@ -474,22 +474,29 @@ class Unicorn::HttpServer end # forcibly terminate all workers that haven't checked in in timeout seconds. The timeout is implemented using an unlinked File + # Workers will be killed with TERM first, so the backtrace can be printed, on + # the next call to murder_lazy_workers the worker will receive KILL. def murder_lazy_workers next_sleep = @timeout - 1 now = Time.now.to_i WORKERS.dup.each_pair do |wpid, worker| - tick = worker.tick - 0 == tick and next # skip workers that haven't processed any clients - diff = now - tick - tmp = @timeout - diff - if tmp = 0 -next_sleep tmp and next_sleep = tmp -next + if worker.needs_sig_kill? +kill_worker(:KILL, wpid) + else +tick = worker.tick +0 == tick and next # skip workers that haven't processed any clients +diff = now - tick +tmp = @timeout - diff +if tmp = 0 + next_sleep tmp and next_sleep = tmp + next +end +next_sleep = 0 +logger.error worker=#{worker.nr} PID:#{wpid} timeout \ + (#{diff}s #{@timeout}s), killing +kill_worker(:TERM, wpid) +worker.needs_sig_kill = true end - next_sleep = 0 - logger.error worker=#{worker.nr} PID:#{wpid} timeout \ - (#{diff}s #{@timeout}s), killing - kill_worker(:KILL, wpid) # take no prisoners for timeout violations end next_sleep = 0 ? 1 : next_sleep end @@ -606,7 +613,7 @@ class Unicorn::HttpServer def init_worker_process(worker) worker.atfork_child # we'll re-trap :QUIT later for graceful shutdown iff we accept clients -EXIT_SIGS.each { |sig| trap(sig) { exit!(0) } } +EXIT_SIGS.each { |sig| trap(sig) { STDERR.puts(caller); exit!(0) } } exit!(0) if (SIG_QUEUE EXIT_SIGS)[0] WORKER_QUEUE_SIGS.each { |sig| trap(sig, nil) } trap(:CHLD, 'DEFAULT') diff --git a/lib/unicorn/worker.rb b/lib/unicorn/worker.rb index e74a1c9..4214500 100644 --- a/lib/unicorn/worker.rb +++ b/lib/unicorn/worker.rb @@ -11,7 +11,7 @@ require raindrops class Unicorn::Worker # :stopdoc: attr_accessor :nr, :switched - attr_writer :tmp + attr_writer :tmp, :needs_sig_kill attr_reader :to_io # IO.select-compatible PER_DROP = Raindrops::PAGE_SIZE / Raindrops::SIZE @@ -25,6 +25,7 @@ class Unicorn::Worker @nr = nr @tmp = @switched = false @to_io, @master = Unicorn.pipe +@needs_sig_kill = false end def atfork_child # :nodoc: @@ -149,4 +150,8 @@ class Unicorn::Worker Process.euid != uid and Process::UID.change_privilege(uid) @switched = true end + + def needs_sig_kill? +@needs_sig_kill + end end -- 1.9.2 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[PATCH] Print stack for lazy workers
This patch attemps at making the debugging of lazy workers easier by making sure unicorn prints a stack trace to STDERR. The patch does 2 things 1. It kills lazy workers with TERM first and then attempts a KILL 2. Prints the stack trace on every kill signal Camilo Lopez (1): Kill lazy workers with TERM before KILL lib/unicorn/http_server.rb | 31 +++ lib/unicorn/worker.rb | 7 ++- 2 files changed, 25 insertions(+), 13 deletions(-) -- 1.9.2 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[no subject]
Продвижение рекламы в интернете. Возможные базы данных: - Москва и Петербург; - Любые города РФ; - Компании любых отраслей бизнеса; - Любые страны. Любые формы оплаты. Быстрый эффект. Самые низкие цены на рынке. Дателизированный отчет в личном кабинете. 7 [ 4 9 5 ]5 4 2 З987 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Вам интернет-магазин работает?
Здравствуйте! Я представляю фабрику по производству инструментов. Мы производим: - Шпатели; - Валики и шубки; - Молотки и топоры; - Строительный инструмент; - Садовый инструмент; - Ерши и щетки; - Скобяные и кузнечные изделия; - Система водостока по предоплате под заказ; - Печное литье. Предлагаем сотрудничество интернет-магазинам (а также любым торговым точкам) - для размещения нашей продукции у Вас на сайте. Цены у нас - реально низкие, возможна хорошая наценка на всю нашу продукцию. Мы находимся в Екатеринбурге, но доставить товар в кротчайшие сроки - в любую точку не составит труда. Сообщите пожалуйста - было бы Вам интересно разместить в своем магазине наши товары? С уважением Антон, менеджер по работе с дилерами. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: [RFC] oobgc: link to Aman's gctools for Ruby 2.1+
Sam Saffron sam.saff...@gmail.com wrote: Perhaps link to https://github.com/discourse/discourse/blob/master/lib/middleware/unicorn_oobgc.rb for a 2.0 compatible solution (for people not on 2.1 yet) OK. I prefer to link to the repo homepage/root to give the top-level project more visibility and also avoid long URLs. How about this? --- a/lib/unicorn/oob_gc.rb +++ b/lib/unicorn/oob_gc.rb @@ -4,6 +4,10 @@ # It is built on new APIs in Ruby 2.1, so it is more intelligent than # this historical implementation. # +# Users on Ruby 2.0 (not 2.1+) may also want to check out +# lib/middleware/unicorn_oobgc.rb from the Discourse project +# (https://github.com/discourse/discourse) +# # The following information is only for historical versions of Ruby. # # Runs GC after requests, after closing the client socket and ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: [RFC] oobgc: link to Aman's gctools for Ruby 2.1+
Looks perfect to me. Thanks heaps On Wed, Apr 2, 2014 at 8:55 PM, Eric Wong normalper...@yhbt.net wrote: Sam Saffron sam.saff...@gmail.com wrote: Perhaps link to https://github.com/discourse/discourse/blob/master/lib/middleware/unicorn_oobgc.rb for a 2.0 compatible solution (for people not on 2.1 yet) OK. I prefer to link to the repo homepage/root to give the top-level project more visibility and also avoid long URLs. How about this? --- a/lib/unicorn/oob_gc.rb +++ b/lib/unicorn/oob_gc.rb @@ -4,6 +4,10 @@ # It is built on new APIs in Ruby 2.1, so it is more intelligent than # this historical implementation. # +# Users on Ruby 2.0 (not 2.1+) may also want to check out +# lib/middleware/unicorn_oobgc.rb from the Discourse project +# (https://github.com/discourse/discourse) +# # The following information is only for historical versions of Ruby. # # Runs GC after requests, after closing the client socket and ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: [RFC] oobgc: link to Aman's gctools for Ruby 2.1+
Fine by me. On Fri, Mar 28, 2014 at 6:35 PM, Eric Wong e...@80x24.org wrote: I've never liked OobGC, so hot potato! :) --- I'll push this sometime this weekend. Corrections/edits/acks/nacks welcome. lib/unicorn/oob_gc.rb | 6 ++ 1 file changed, 6 insertions(+) diff --git a/lib/unicorn/oob_gc.rb b/lib/unicorn/oob_gc.rb index 4e78a70..4cddd50 100644 --- a/lib/unicorn/oob_gc.rb +++ b/lib/unicorn/oob_gc.rb @@ -1,5 +1,11 @@ # -*- encoding: binary -*- +# Strongly consider https://github.com/tmm1/gctools if using Ruby 2.1+ +# It is built on new APIs in Ruby 2.1, so it is more intelligent than +# this historical implementation. +# +# The following information is only for historical versions of Ruby. +# # Runs GC after requests, after closing the client socket and # before attempting to accept more connections. # -- EW ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[RFC] oobgc: link to Aman's gctools for Ruby 2.1+
I've never liked OobGC, so hot potato! :) --- I'll push this sometime this weekend. Corrections/edits/acks/nacks welcome. lib/unicorn/oob_gc.rb | 6 ++ 1 file changed, 6 insertions(+) diff --git a/lib/unicorn/oob_gc.rb b/lib/unicorn/oob_gc.rb index 4e78a70..4cddd50 100644 --- a/lib/unicorn/oob_gc.rb +++ b/lib/unicorn/oob_gc.rb @@ -1,5 +1,11 @@ # -*- encoding: binary -*- +# Strongly consider https://github.com/tmm1/gctools if using Ruby 2.1+ +# It is built on new APIs in Ruby 2.1, so it is more intelligent than +# this historical implementation. +# +# The following information is only for historical versions of Ruby. +# # Runs GC after requests, after closing the client socket and # before attempting to accept more connections. # -- EW ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
.
Здравствуйте! Сообщите, пожалуйста, чьими услугами Вы сейчас пользуетесь при доставке грузов из Европы? Уверен что мы сможем предложить лучшие сроки доставки. Пришлите контакты, если Вас заинтересовали наши услуги. с уважением Юрий Владимирович. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
По поводу СРО
Добрый день! Это Анна, я писала Вам по поводу СРО. Подскажите пожалуйста - нашли ли Вы подходящую компанию для вступления в СРО? Если нет - я готова предложить в течении трех дней подготовить документы для Вас для вступления в наше СРО! О цене договоримся - дешевле цем у нас Вы не найдете нигде. А также всегда в наличии имеются готовые фирмы с допусками СРО. Я позвоню Вам завтра (если Вы не против конечно) чтобы узнать Ваше решение. Заранее благодарен за ответ, Анна. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
По поводу сертификатов
Здравствуйте! Нашла Ваш контакт в интернете, пожалуйста сообщите - на все ли продаваемые товары у Вас имеются сертификаты? И все ли они действительны? Если на некоторые продукты Вам нужен будет сертификат - наш центр сертификации изготовит Вам его в рекордно короткие сроки. В случае заинтересованности - пожалуйста напишите на какие типы товаров требуются оформить сертификат - я сообщу стоимость и время изготовления сертификата. С уважением, Кристина (специалист по оформлению сертификатов). ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
По поводу документов
Здравствуйте! Была на Вашем сайте, сообщите пожалуйста - есть ли у Вас лицензия МЧС? Если нет. Я готова предложить свои услуги: - Предоставлю специалистов; - Оборудование; - Пройду за Вас все проверку. От вас только учредительные! Даю гарантии результата, все условия пропишем в договоре! Мои услуги стоят совсем недорого. Интересно ли Вам мое предложение? Я позвоню Вам завтра, чтобы узнать решение, если Вы конечно не против. С уважением, Кристина. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
+
Добрый день. Подскажите, пожалуйста, какая компания занимается организацией для Вас делового туризма? Если Вы недовольны своим партнером или просто хотите проверить насколько он завышает цены на обслуживание Вы можете обратиться к нам. Мы предложим удобный и экономичный способ организации командировок для корпоративных клиентов: VIP залы аэропорт. Сообщите, пожалуйста, Вам интересно ознакомиться с нашим специальным предложением на весь спектр туристических услуг для корпоративных клиентов? ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Насчет вступления в СРО
Здравствуйте. На все ли выполняемые строительные работы у Вас есть Свидетельство о Допуске? Если нет то мы можем выдать необходимое свидетельство для изыскателей, проектировщиков и строителей. С Вас только учредительные! Сделаем за один день без посредников, возможна оплата в беспроцентный кредит до 12 месяцев. Работая с нами Вы экономите от 50 000 руб. Предоставляем квалифицированных специалистов. Мы гарантируем , что с нашим доступом СРО Вы пройдёте в любоим тендере, либо мы вернём деньги! Мы не бросаем Вас после получения СРО. Мы помогаем решать вопросы: 1. Добавить больше видов работ в допуски. 2.Увеличить суммы контрактов. 3.Пройти плановую ежегодную проверку. 4. Согласовать отсрочку платежей. Хочу напомнить о том, что выполнение строительных работ без участия в СРО может повлечь серьезные штрафные санкции (до 300 000 рублей, ликвидация юридического лица или уголовная ответствен) ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
ṼΊᾋǦℜᾋ
http://gambardesign.com/wp-content/locfonts.php?p1383402 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
По поводу сетевого оборудования от производителя
Добрый день! Предлагаю сотрудничество по реализации розеток 1хRJ-11 и 2хRJ-45 и другого сетевого оборудования от эксклюзивного дилера в РФ. Мы можем предложить конкурентно способные цены, потому что производство находится в Китае. Мы гарантируем высокое качество изделий, потому что наше оборудование сертифицировано в 80 странах, в том числе Европе и Америке. . Сообщите, пожалуйста, интересно ли Вам сотрудничество. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
USR2 to unicorn leads to Errno::EINTR
Hello Sometimes when I reload unicorn I receive different errors, usually these are system errors, starting with Errno. Last time it was: Errno::EINTR: Interrupted system call - identify -quiet -ping -format %w %h\\n /tmp/mini_magick20140226-3105-gexmt1 It's pretty clear that image processing process was interrupted, but why it happened? As I understand unicorn should wait until it's children will complete current request. Thanks. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: USR2 to unicorn leads to Errno::EINTR
Дмитрий Голубь dmitrii.go...@me.com wrote: Errno::EINTR: Interrupted system call - identify -quiet -ping -format %w %h\\n /tmp/mini_magick20140226-3105-gexmt1 It's pretty clear that image processing process was interrupted, but why it happened? As I understand unicorn should wait until it's children will complete current request. This appears to be a bug in (older) Ruby itself: https://bugs.ruby-lang.org/issues/8770 The latest Ruby releeases (2.1.1, 2.0.0-p451, 1.9.3-p545) should have this fixed. Please let Ruby developers know if you still hit this error with the latest versions. Thanks. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Stucks DB connections
Ilya Bazylchuk ilya.bazylc...@gmail.com wrote: Hey Guys, We have problems with DB connection in unicorn. When workers work some hours we see in Postgres activity stucks connections with query COMMIT. After restart unicorn it work fine some time, then connections stucks again. database.yml adapter: postgis postgis_extension: true schema_search_path: public,postgis encoding: utf8 pool: 5 checkout_timeout: 10 unicorn 4.8.2 pg 0.17.1 rails 3.2.17 I'm not familiar with postgis. Is there any sort of idle timeout on the database side? Is this high or low traffic when things get stuck? I think the postgis/pg adapter guys might be able to help, too, since unicorn doesn't do anything with the DB connections itself. Some generic, DB-independent thoughts/questions: Sometimes, tiny socket buffer sizes with the DB connection might hit this. Any non-standard kernel/socket knobs or tuning? Also, if running Linux, which kernel version are you running? If it's 3.7, make sure commit 8fb74b9fb2b182d54beee592350d9ea1f325917a (mm: compaction: partially revert capture of suitable high-order page) got backported. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Stucks DB connections
Ilya Bazylchuk ilya.bazylc...@gmail.com wrote: Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-40-virtual x86_64) without any changes. In resque, sidekiq we don't have this problems. Can be stuck connection, when unicorn reset request by timeout? It could be stuck if your DB adapter times out and forget to reset/rollback transactions on the connections. Check with the DB adapter developers. Note: the internal timeout of unicorn isn't intended for DB failures, that is a last resort. Use the builtin timeout of the DB adapters. (Btw, please keep the mailing list Cc-ed and don't top post) ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[PATCH 1/2] remove SSL tests
This feature is on hold for now, since it never really took off and kgio-monkey is more-or-less abandoned. I'm not looking forward to supporting OpenSSL unless there's interest. This was mainly intended as an experiment to deal with a bad hardware/firmware situation on a LAN I have. It allowed SSL to abort on corrupt packets. --- script/isolate_for_tests | 1 - t/.gitignore | 1 - t/GNUmakefile | 6 +--- t/sslgen.sh | 71 --- t/t0600-https-server-basic.sh | 48 - 5 files changed, 1 insertion(+), 126 deletions(-) delete mode 100755 t/sslgen.sh delete mode 100755 t/t0600-https-server-basic.sh diff --git a/script/isolate_for_tests b/script/isolate_for_tests index 63df48e..6f0a9fc 100755 --- a/script/isolate_for_tests +++ b/script/isolate_for_tests @@ -17,7 +17,6 @@ opts = { pid = fork do Isolate.now!(opts) do gem 'raindrops', '0.12.0' -gem 'kgio-monkey', '0.4.0' gem 'kgio', '2.8.1' gem 'rack', '1.5.2' end diff --git a/t/.gitignore b/t/.gitignore index 1ba7e52..2312321 100644 --- a/t/.gitignore +++ b/t/.gitignore @@ -2,4 +2,3 @@ /.dep+* /*.crt /*.key -/ssl-stamp diff --git a/t/GNUmakefile b/t/GNUmakefile index bac50a6..8f2668c 100644 --- a/t/GNUmakefile +++ b/t/GNUmakefile @@ -45,11 +45,7 @@ random_blob: dd if=/dev/urandom bs=1M count=30 of=$@.$(pid) mv $@.$(pid) $@ -ssl-stamp: - ./sslgen.sh -$@ - -$(T): random_blob ssl-stamp +$(T): random_blob dependencies := socat curl deps := $(addprefix .dep+,$(dependencies)) diff --git a/t/sslgen.sh b/t/sslgen.sh deleted file mode 100755 index e37d966..000 --- a/t/sslgen.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/sh -set -e - -lock=$0.lock -while ! mkdir $lock 2/dev/null -do - echo 2 PID=$$ waiting for $lock - sleep 1 -done -pid=$$ -trap 'if test $$ -eq $pid; then rmdir $lock; fi' EXIT - -certinfo() { - echo US - echo Hell - echo A Very Special Place - echo Monkeys - echo Poo-Flingers - echo 127.0.0.1 - echo k...@bogomips.org -} - -certinfo2() { - certinfo - echo - echo -} - -ca_certinfo () { - echo US - echo Hell - echo An Even More Special Place - echo Deranged Monkeys - echo Poo-Hurlers - echo 127.6.6.6 - echo unic...@bogomips.org -} - -openssl genrsa -out ca.key 1024 -ca_certinfo | openssl req -new -x509 -days 666 -key ca.key -out ca.crt - -openssl genrsa -out bad-ca.key 1024 -ca_certinfo | openssl req -new -x509 -days 666 -key bad-ca.key -out bad-ca.crt - -openssl genrsa -out server.key 1024 -certinfo2 | openssl req -new -key server.key -out server.csr - -openssl x509 -req -days 666 \ - -in server.csr -CA ca.crt -CAkey ca.key -set_serial 1 -out server.crt -n=2 -mk_client_cert () { - CLIENT=$1 - openssl genrsa -out $CLIENT.key 1024 - certinfo2 | openssl req -new -key $CLIENT.key -out $CLIENT.csr - - openssl x509 -req -days 666 \ - -in $CLIENT.csr -CA $CA.crt -CAkey $CA.key -set_serial $n \ - -out $CLIENT.crt - rm -f $CLIENT.csr - n=$(($n + 1)) -} - -CA=ca -mk_client_cert client1 -mk_client_cert client2 - -CA=bad-ca mk_client_cert bad-client - -rm -f server.csr - -echo OK diff --git a/t/t0600-https-server-basic.sh b/t/t0600-https-server-basic.sh deleted file mode 100755 index 5dd0d65..000 --- a/t/t0600-https-server-basic.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -. ./test-lib.sh -t_plan 7 simple HTTPS connection tests - -t_begin setup and start { - rtmpfiles curl_err - unicorn_setup -cat $unicorn_config EOF -ssl do - listen $listen - ssl_certificate server.crt - ssl_certificate_key server.key -end -pid $pid -stderr_path $r_err -stdout_path $r_out -EOF - unicorn -D -c $unicorn_config env.ru - unicorn_wait_start -} - -t_begin single request { - curl -sSfv --cacert ca.crt https://$listen/ -} - -t_begin check stderr has no errors { - check_stderr -} - -t_begin multiple requests { - curl -sSfv --no-keepalive --cacert ca.crt \ - https://$listen/ https://$listen/ 2 $curl_err $tmp - dbgcat curl_err -} - -t_begin check stderr has no errors { - check_stderr -} - -t_begin killing succeeds { - kill $unicorn_pid -} - -t_begin check stderr has no errors { - check_stderr -} - -t_done -- 1.9.0.rc3.13.gda73b5f ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[PATCH 2/2] script/isolate_for_tests: bump to latest versions
kgio and raindrops were both updated for Ruby 2.2.0dev r44955 and later, so depend on them in our tests. --- script/isolate_for_tests | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/isolate_for_tests b/script/isolate_for_tests index 6f0a9fc..6f5dced 100755 --- a/script/isolate_for_tests +++ b/script/isolate_for_tests @@ -16,8 +16,8 @@ opts = { pid = fork do Isolate.now!(opts) do -gem 'raindrops', '0.12.0' -gem 'kgio', '2.8.1' +gem 'raindrops', '0.13.0' +gem 'kgio', '2.9.2' gem 'rack', '1.5.2' end end -- 1.9.0.rc3.13.gda73b5f ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
*
РАСПРОДАЖА ДЕЙСТВИТЕЛЬНО ЛУЧШИХ СИГАР! Цена действительна в течении трех с момента получения письма. - Оплата при получении посылки! Перед оплатой есть возможность открыть упаковку и убедиться в качестве сигар! - Есть возможность доставки в любой город России с вручением курьером «лично в руки». COHIBA BEHIKE 56 (10 шт) – 13 600 рублей за коробку (1360 рублей за штуку) H.UPMANN MAGNUM 46 (25 шт) - 9900 рублей за коробку (396 рублей за штуку) MONTECRISTO № 2 (25 шт) - 9900 рублей за коробку (396 рублей за штуку) Если Вы не нашли Ваши любимые сигары в нашем списке, спросите у нас стоимость на них мы сообщим Вам ее, и поверьте, цена Вам понравится! Если Вас заинтересовало наше предложение напишите: Наименование сигар, которые Вам интересны и их количество, которое Вам необходимо (кратно коробке). Обязательно укажите Ваш Ф.И.О. и контактный номер телефона (не забудьте указать код города). ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
ṾİẰġŔẰ
http://intercap.cl/wp-content/pool/?v=3813853 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Новая кухня к праздникам
Мы производим и продаем более 200 видов кухонь. http://кухни-на-выбор.рф Именно на кухне Ваша Мама проводит больше всего времени. Современные кухни позволят сделать ее хозяйкой, а не домработницей. Мы предлагаем экономичные кухни из влагостойкой древесно-стружечной плиты по цене от 10 тысяч рублей. Если оформить заказ сейчас то уже к 8 марта у Вас будет новая кухня. http://кухни-на-выбор.рф ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
ṼḭĀǦŗĀ
http://druginfo.kz/bd/blog-songs/?view=8770616 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: your mail
Здравствуйте. Подскажите, пожалуйста, какая компания Вам организует деловые поездки, индивидуальный и событийный туризм? Если Вы недовольны своим партнером или просто хотите проверить насколько он завышает цены на обслуживание обратитесь к нам. Мы предложим удобный и экономичный способ организации командировок для корпоративных клиентов: Помощь в оформлении загранпаспортов. А также предлагаем: Визовая поддержка российским и иностранным гражданам. Сообщите, пожалуйста, Вам интересно ознакомиться с нашим предложением на весь спектр туристических услуг для корпоративных клиентов? ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
non-Linux check_client_connection users?
Hey all, just wondering how well (if at all) the check_client_connection feature works for non-Linux users. Reports of success/failure and info about the connection type (TCP vs Unix socket) and loopback or over a NIC if on TCP would be greatly appreciated, thanks! ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[ANN] unicorn 4.8.2 released
Note: this is identical to the 4.8.1.1.g9b565 prerelease avoid race condition during worker startup We close SELF_PIPE in the worker immediately, but signal handlers do not get setup immediately. So prevent workers from erroring out due to invalid SELF_PIPE. * http://unicorn.bogomips.org/ * mongrel-unicorn@rubyforge.org * git://bogomips.org/unicorn.git * http://unicorn.bogomips.org/NEWS.atom.xml -- Eric Wong ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
P=A=C=С=Ы=Л=K=И
Здравствуйте Меня зовут Роман. Я занимаюсь профессионально рекламными рассылками. К Вам есть предложение - Вашу услугу или товар сформулировать в форме рекламного объявления и распространить его почтовым ящикам определенной области бизнеса. Предлагаю распространить Ваше рекламное объявление по любой нужной базе данных. Если это возможно - сообщите пожалуйста Ваш Ваш телефон, я объясню об этом более подробно. С уважением, Роман. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Рассылки - это эффективно
Здравствуйте Меня зовут Роман. Я профессионально занимаюсь интернет рассылками. Есть предложение - Ваш товар или услугу сделать в форме коммерческого предложения и распространить его почтовым ящикам конкретной сферы деятельности. Предлагаю прорекламировать Ваше предложение по любой необходимой базе. Если это возможно - сообщите пожалуйста Ваш номер телефона, я расскажу о предложении детальнее. Заранее благодарен за ответ, Роман. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: [PATCH] construct listener_fds Hash in 1.8 compatible way
Apologies for the spam, I had a wacked out command line tool go haywire on a message that got stuck in spool months ago. On Fri, Nov 1, 2013 at 10:12 AM, Ernest W. Durbin III ewdur...@gmail.com wrote: This renables the ability for Ruby 1.8 environments to perform reexecs --- lib/unicorn/http_server.rb | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb index 2decd77..9a5795c 100644 --- a/lib/unicorn/http_server.rb +++ b/lib/unicorn/http_server.rb @@ -449,13 +449,14 @@ class Unicorn::HttpServer end self.reexec_pid = fork do - listener_fds = Hash[LISTENERS.map do |sock| + listener_fds = Hash.new + LISTENERS.map do |sock| # IO#close_on_exec= will be available on any future version of # Ruby that sets FD_CLOEXEC by default on new file descriptors # ref: http://redmine.ruby-lang.org/issues/5041 sock.close_on_exec = false if sock.respond_to?(:close_on_exec=) -[ sock.fileno, sock ] - end] +listener_fds[sock.fileno] = sock + end ENV['UNICORN_FD'] = listener_fds.keys.join(',') Dir.chdir(START_CTX[:cwd]) cmd = [ START_CTX[0] ].concat(START_CTX[:argv]) -- 1.8.4 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
∨ΐĀɡ℟Ā
http://ngohaiyen.com/wp-content/show-results/zcount.php?s=5500288 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Different behavior with pid files and SIGUSR2
Michael Graff explo...@flame.org wrote: What I appear to be seeing now, with 4.7.0, is: (1) The PID file is removed. (2) The new instance spins up, but until it starts its first worker, no .pid file is created. I don't mind the new behavior particularly, but it did surprise me a bit. Is this new behavior working as intended? Yes in 4.7.0, but Jimmy convinced me to change it so the PID is written early again in 4.8.0 (also pushing out 4.8.1 soon) ref: http://mid.gmane.org/cahsts5gfycpbdxkvizahroedkakjt69krufdgay0cbb+vlb...@mail.gmail.com ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Different behavior with pid files and SIGUSR2
Good deal. This was breaking my restart script in a non-obvious way. Granted, my restart script should be smarter... What is the preferred way to start-on-server-reboot and upgrade-in-place these days? I have an older linux-expecting init.d-style script I've been using for years, so it's likely time to consider alternatives. --Michael On Jan 28, 2014, at 2:03 PM, Eric Wong normalper...@yhbt.net wrote: Michael Graff explo...@flame.org wrote: What I appear to be seeing now, with 4.7.0, is: (1) The PID file is removed. (2) The new instance spins up, but until it starts its first worker, no .pid file is created. I don't mind the new behavior particularly, but it did surprise me a bit. Is this new behavior working as intended? Yes in 4.7.0, but Jimmy convinced me to change it so the PID is written early again in 4.8.0 (also pushing out 4.8.1 soon) ref: http://mid.gmane.org/cahsts5gfycpbdxkvizahroedkakjt69krufdgay0cbb+vlb...@mail.gmail.com ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Unicorn workers freeze from time to time
A couple of days ago I noticed a strange thing - from time to time server stops processing request for some time. At the `top` output it looks like this: * ten Unicorn workers process requests; * then, for some reason, they stop doing anything. I mean, all ten workers have 'sleeping' status; * for a ten-fifteen seconds they sleep; * and then suddenly all then workers at the same time start processing requests (lots of them were queued for 10s); I have the following setup: nginx, unicorn 4.6.2, postgres, redis for sessions and cache. My first thought was to blame redid (because if redis doesn't give sessions, all process will wait for it), but it seems it is not the case, because while unicorn workers freeze, redis serving other processes that do background jobs. I don't understand what is the reason of this strange behaviour. If someone have some thoughts on the matter I would gladly check it. If you need additional information - just tell me what to do, and I'll try to provide it. Related question on StackOverflow - http://stackoverflow.com/questions/21329413/unicorn-workers-freeze-from-time-to-time Best regards, Artem Pyanykh ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Вопрос по продукции
Здравствуйте коллеги! Пожалуйста сообщите - на всё ли реализуемое низковольтное оборудование у Вас имеются Государственная регистрация? И все ли документы актуальные? Мы предлагаем провести испытания высоковольтного и низковольтного оборудования: - подготовка протоколов испытаний от института на безопасность - проведения климатических, механических, высоковольтных испытаний на реакторы, силовые трансформаторы, элегазовые трансформаторы тока и напряжения и многое другое. Сообщите, пожалуйста, Вам интересно ознакомиться с нашим специальным предложением? ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
По поводу рекламы
Здравствуйте Меня зовут Роман. Я профессионально занимаюсь электронными рассылками. К Вам есть предложение - Ваш товар или услугу написать в форме рекламного объявления и распространить его почтовым ящикам определенной области. Предлагаю прорекламировать Ваше объявление по любой необходимой базе данных. Если это возможно - сообщите Ваш номер телефона, я объясню о рассылке подробнее. С уважением, Роман. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Продуктивный PR в интернете
Добрый день Меня зовут Роман. Я занимаюсь профессионально интернет рассылками. К Вам есть предложение - Ваш товар или услугу сформулировать в виде коммерческого предложения и распространить его почтовым ящикам определенной сферы деятельности. Предлагаю прорекламировать Ваше коммерческое предложение по любой необходимой базе данных. Если это возможно - пожалуйста сообщите Ваш контакт, я объясню об этом детальнее. С уважением, Роман. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Suggestion for Named Process
Hi, When running multiple rails apps on the same server it can become a pain identifying which 'unicorn_rails master’ process is running which app (can’t always tell from the user). My suggestion is for a --name option to allow each process to be named individually. E.g. unicorn_rails —name tiddles_unicorn -D” would show “tiddles_unicorn master” “tiddles_unicorn worker[1]” when using PS I can be cc’d at b...@gigglemania.co.uk. Cheers. Bob ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Suggestion for Named Process
Bob McKinven b...@gigglemania.co.uk wrote: When running multiple rails apps on the same server it can become a pain identifying which 'unicorn_rails master’ process is running which app (can’t always tell from the user). My suggestion is for a --name option to allow each process to be named individually. E.g. unicorn_rails —name tiddles_unicorn -D” would show “tiddles_unicorn master” “tiddles_unicorn worker[1]” when using PS I suggest using -c to point to a location specific to the app: unicorn -c /path/to/tiddles/unicorn.conf.rb Having too many options adds to confusion, and changing the executable name part of the process title can also break tools like killall. I also end up using something like this quite often (and even without bundler, just using RubyGems only): http://mid.gmane.org/20110819022316.ga2...@dcvr.yhbt.net I can be cc’d at b...@gigglemania.co.uk. Done : ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Suggestion for Named Process
Bob McKinven b...@gigglemania.co.uk wrote: Thanks Eric, I do use the -c option .. but end up with several services all showing “-C config/unicorn.rb” .. the initial path that would clearly identify the location is cut off :( I always recommend using the absolute path for -c, it's less confusing, especially with options like working_directory and SIGUSR2 upgrades (Also, be sure to keep the mailing list Cc:-ed so others can follow). ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
۷ῗᾼɠŔᾼ
http://narutohood.com/vck/progdata/?p=3831729 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
ṽỊặɡṙặ
http://2p-studio.com/newsletter/_viewscore/?view=32433 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: [ANN] unicorn 4.8.0.pre1 prerelease gem
Eric Wong normalper...@yhbt.net wrote: tests: fix SO_REUSEPORT tests for old Linux and non-Linux stream_input: avoid IO#close on client disconnect t0300: kill off stray processes in test always write PID file early for compatibility doc: clarify SIGNALS and reference init example rework master-to-worker signaling to use a pipe Btw, has anybody tried this? I haven't noticed any issues, and I'm thinking about releasing this as 4.8.0 as-is (with some minor doc updates) ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Zero-downtime restarts while updating the environment?
Hi there, I recently ran into a problem where I had to update bundler from 1.3 to 1.5 so that it recognised the platforms:[ruby_21] option in my Gemfile. However, Unicorn continued to use Bundler 1.3 when I re-exec'd it via USR2 (perhaps unsurprisingly), and so couldn't load my new gemfile until I completely restarted it. I ended up tweaking our balancers to funnel all our traffic to half our backend machines, restarted unicorn on the other half, then flipped the traffic to the first half and repeat. Is that the standard way of doing it, or is there a better way? ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Zero-downtime restarts while updating the environment?
cycling in and out of the load balancer is standard, you can also do this: http://samsaffron.com/archive/2013/11/13/live-restarts-of-a-supervised-unicorn-process On Sat, Jan 4, 2014 at 6:15 AM, Jonathan del Strother maill...@steelskies.com wrote: Hi there, I recently ran into a problem where I had to update bundler from 1.3 to 1.5 so that it recognised the platforms:[ruby_21] option in my Gemfile. However, Unicorn continued to use Bundler 1.3 when I re-exec'd it via USR2 (perhaps unsurprisingly), and so couldn't load my new gemfile until I completely restarted it. I ended up tweaking our balancers to funnel all our traffic to half our backend machines, restarted unicorn on the other half, then flipped the traffic to the first half and repeat. Is that the standard way of doing it, or is there a better way? ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Zero-downtime restarts while updating the environment?
Jonathan del Strother maill...@steelskies.com wrote: Hi there, I recently ran into a problem where I had to update bundler from 1.3 to 1.5 so that it recognised the platforms:[ruby_21] option in my Gemfile. However, Unicorn continued to use Bundler 1.3 when I re-exec'd it via USR2 (perhaps unsurprisingly), and so couldn't load my new gemfile until I completely restarted it. You can poke around in the ENV hash with the before_exec hook to remove/change any environment variables Bundler uses. ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Is it possible to log better info in timeouts?
Carlos Peñas theist...@gmx.com wrote: Recently we had an issue with an external service for an app served with unicorn. And some of our requests died with unicorn's timeout because a not properly secured call to this external service. We had 20s timeout but in production with ten worker and a big percent of urls hitting external services 20 secons of timeout sooner or later brings down the entire site. in the logs when this hapens this line is left for debugging: E, [2013-12-25T23:56:49.363426 #26324] ERROR -- : worker=2 PID:27956 timeout (21s 20s), killing E, [2014-12-25T23:56:49.396005 #26324] ERROR -- : reaped #Process::Status: pid 27956 SIGKILL (signal 9) worker=2 Is it possible to opt to print to the error log some other info perhaps the bactrace of the process or the offending request? The SIGKILL sent by the master isn't avoidable/trapable in userspace, the KILL-ed process has no chance to dump a backtrace. Even better whould be possible to hack a watchdog that could log slow requests like mysql slow_queries? You need to do this in your application. The timeout in unicorn is a last resort: http://unicorn.bogomips.org/Application_Timeouts.html I don't encourage relying on the unicorn timeout, it's a hack for broken libraries or fatal bugs in Ruby (which are rarer nowadays). ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
ѷİᾇɡṜᾇ
http://rexref.com/language/_audionews/zcount.php?v=3295473 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Ѷїᾳĝℛᾳ
http://kobaclub.com/cc/play/zcount.php?18740 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
[no subject]
Распространение Ваших писем в интернете. Возможные базы данных: - Москва и Петербург; - Города РФ; - Фирмы любых сфер деятельности; - Любые страны. Любые формы оплаты. Быстрый эффект. Самые низкие цены на рынке. Подробный отчет в Вашем личном кабинете. 7 [49 5 ] 5 4 5 ~ 1 Ч = 92 ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
unicorn mailing list moving
Heads up, some things will change regarding this mailing list. Rubyforge has not been doing well lately and it looks like Rubyforge is going away. This means the mailing list needs to move (and likely evolve into something a little more distributed). What will change: * the email address (duh) * hopefully better control of spam filtering/training What won't change: * no signups, nor list subscription requirement. drive-by contributors will always be welcome ... more later : Note: I will never encourage nor promote the use of any non-Free Software. So don't worry about that[1] :) [1] hasbeghangryl, gb zbfg, guvf nyfb zrnaf: qba'g trg lbhe ubcrf hc : ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: unicorn mailing list moving
Thanks for the heads up Eric, much appreciated. - alex sharp ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Bad file descriptor on reload under Ruby 2.0
If you're getting an EBADF (bad file descriptor) error when re-execing Unicorn under Ruby = 2.0 (see, e.g, http://rubyforge.org/pipermail/mongrel-unicorn/2013-August/001858.html), it's likely that you're re-running Unicorn via bundle exec: http://developer.zendesk.com/blog/2013/10/09/ruby-2-0-changes-exec-bundler/ The fix is to use a binstub for unicorn. Best regards, --Michael ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
Re: Issues with PID file renaming
On 11.12.2013 15.54, Michael Fischer wrote: On Tue, Dec 10, 2013 at 10:44 PM, Petteri Räty betelge...@gentoo.org wrote: At least for pid based monitoring tools it is (I do agree with others that you should also be monitoring http though). For example monit requires that you give it a pid file. Why is it wrong for them to point to the same pid? Monit doesn't require a pid, never has: http://mmonit.com/monit/documentation/monit.html#connection_testing If you only want to do connection testing. What if you want to monitor the memory usage of unicorn processes? To answer your question, though, the reason the pid files must contain different PIDs is that the two processes (previous and current-generation masters) have different PIDs. And some of us do care that they differ :) Eric's original comment and my response was about the pid files having the same content (albeit shortly). Regards, Petteri ___ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying