*** pradk has quit IRC | 00:06 | |
openstackgerrit | Eva Balycheva proposed openstack/zaqar: Support binary messages over websocket https://review.openstack.org/256978 | 00:32 |
---|---|---|
*** shakamunyi has quit IRC | 00:35 | |
*** shakamunyi has joined #openstack-zaqar | 00:35 | |
*** stanchan has quit IRC | 00:45 | |
*** stanchan has joined #openstack-zaqar | 00:46 | |
*** stanchan has quit IRC | 00:51 | |
*** stanchan has joined #openstack-zaqar | 00:51 | |
*** stanchan has quit IRC | 00:51 | |
*** barra204 has joined #openstack-zaqar | 00:56 | |
*** shakamunyi has quit IRC | 00:57 | |
*** barra204 has quit IRC | 01:14 | |
*** shakamunyi has joined #openstack-zaqar | 01:15 | |
*** barra204 has joined #openstack-zaqar | 01:31 | |
*** shakamunyi has quit IRC | 01:32 | |
*** shakamunyi has joined #openstack-zaqar | 01:36 | |
*** barra204 has quit IRC | 01:38 | |
*** barra204 has joined #openstack-zaqar | 01:38 | |
*** shakamunyi has quit IRC | 01:39 | |
*** shakamunyi has joined #openstack-zaqar | 01:44 | |
*** barra204 has quit IRC | 01:45 | |
*** shakamunyi has quit IRC | 01:48 | |
*** shakamunyi has joined #openstack-zaqar | 01:48 | |
*** csoukup has joined #openstack-zaqar | 01:52 | |
*** shakamunyi has quit IRC | 01:54 | |
*** csoukup has quit IRC | 01:58 | |
*** kgriffs is now known as kgriffs|afk | 01:59 | |
*** shakamunyi has joined #openstack-zaqar | 02:08 | |
*** shakamunyi has quit IRC | 02:10 | |
*** shakamunyi has joined #openstack-zaqar | 02:12 | |
*** AAzza has quit IRC | 02:22 | |
*** shakamunyi has quit IRC | 02:22 | |
*** AAzza has joined #openstack-zaqar | 02:23 | |
*** AAzza_ has joined #openstack-zaqar | 02:23 | |
*** shakamunyi has joined #openstack-zaqar | 02:23 | |
*** AAzza has quit IRC | 02:27 | |
*** AAzza has joined #openstack-zaqar | 02:28 | |
*** AAzza_ has quit IRC | 02:28 | |
*** shakamunyi has quit IRC | 02:32 | |
openstackgerrit | Fei Long Wang proposed openstack/python-zaqarclient: Add support for subscription delete v2 https://review.openstack.org/261280 | 02:35 |
*** AAzza_ has joined #openstack-zaqar | 02:41 | |
*** AAzza has quit IRC | 02:41 | |
*** AAzza_ is now known as AAzza | 02:41 | |
*** AAzza has quit IRC | 02:47 | |
*** AAzza has joined #openstack-zaqar | 02:51 | |
*** AAzza has quit IRC | 03:02 | |
*** AAzza has joined #openstack-zaqar | 03:05 | |
*** AAzza has quit IRC | 03:16 | |
*** AAzza has joined #openstack-zaqar | 03:17 | |
openstackgerrit | Fei Long Wang proposed openstack/zaqar-specs: Spec for more reserved queue attributes https://review.openstack.org/257622 | 03:19 |
*** AAzza has quit IRC | 03:21 | |
openstackgerrit | Merged openstack/python-zaqarclient: Add support for subscription delete v2 https://review.openstack.org/261280 | 03:22 |
*** AAzza has joined #openstack-zaqar | 03:24 | |
*** kgriffs|afk is now known as kgriffs | 03:26 | |
openstackgerrit | Fei Long Wang proposed openstack/python-zaqarclient: Add support for subscription show v2 https://review.openstack.org/261282 | 03:29 |
*** flwang has quit IRC | 04:06 | |
*** kgriffs is now known as kgriffs|afk | 04:45 | |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Create api should throw PoolNameConflict exception for duplicate pool name https://review.openstack.org/238006 | 05:26 |
openstackgerrit | MD NADEEM proposed openstack/python-zaqarclient: Fixing the deprecated library function https://review.openstack.org/266198 | 06:04 |
*** ryansb has quit IRC | 06:31 | |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Create api should throw PoolNameConflict exception for duplicate pool name https://review.openstack.org/238006 | 06:57 |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Flavor create api should throw FlavorNameConflict exception for duplicate Flavor name https://review.openstack.org/238396 | 06:59 |
*** venkat__ has joined #openstack-zaqar | 07:00 | |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Create api should throw PoolNameConflict exception for duplicate pool name https://review.openstack.org/238006 | 07:22 |
*** ryansb has joined #openstack-zaqar | 07:24 | |
*** ryansb has quit IRC | 07:24 | |
*** ryansb has joined #openstack-zaqar | 07:24 | |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Flavor create api should throw FlavorNameConflict exception for duplicate Flavor name https://review.openstack.org/238396 | 07:24 |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Flavor create api should throw FlavorNameConflict exception for duplicate Flavor name https://review.openstack.org/238396 | 07:28 |
*** GB21 has joined #openstack-zaqar | 08:15 | |
*** eliqiao has quit IRC | 08:18 | |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Create api should throw PoolNameConflict exception for duplicate pool name https://review.openstack.org/238006 | 08:46 |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Flavor create api should throw FlavorNameConflict exception for duplicate Flavor name https://review.openstack.org/238396 | 08:48 |
openstackgerrit | MD NADEEM proposed openstack/zaqar: Flavor create api should throw FlavorNameConflict exception for duplicate Flavor name https://review.openstack.org/238396 | 08:52 |
openstackgerrit | MD NADEEM proposed openstack/zaqar: PUT improvement for pool create https://review.openstack.org/238006 | 08:56 |
openstackgerrit | MD NADEEM proposed openstack/zaqar: PUT improvement for flavor create https://review.openstack.org/238396 | 08:58 |
*** openstackgerrit has quit IRC | 09:17 | |
*** openstackgerrit has joined #openstack-zaqar | 09:17 | |
*** davideag_ has joined #openstack-zaqar | 09:53 | |
*** davideagnello has quit IRC | 09:56 | |
*** eliqiao has joined #openstack-zaqar | 10:08 | |
*** eliqiao has left #openstack-zaqar | 10:08 | |
*** eliqiao has joined #openstack-zaqar | 10:10 | |
openstackgerrit | MD NADEEM proposed openstack/zaqar: PUT improvement for pool create https://review.openstack.org/238006 | 10:11 |
*** mdnadeem has quit IRC | 10:13 | |
*** mdnadeem has joined #openstack-zaqar | 10:14 | |
openstackgerrit | MD NADEEM proposed openstack/zaqar: PUT improvement for flavor create https://review.openstack.org/238396 | 10:20 |
Eva-i | Hello | 10:21 |
Eva-i | Seems like we broke something in python-zaqarclient. Dsvm gates fail on "test_subscription_create" and "test_subscription_delete" tests. I'll try to find the problem. | 10:23 |
mdnadeem | Eva-i, yes me too face same issue | 10:30 |
mdnadeem | Eva-i, ping | 10:50 |
Eva-i | mdnadeem: pong | 10:50 |
mdnadeem | regarding https://bugs.launchpad.net/python-zaqarclient/+bug/1532776 | 10:50 |
openstack | Launchpad bug 1532776 in Python client library for Zaqar "Invisible conflict during creation of some resources " [Undecided,New] - Assigned to MD NADEEM (mail2nadeem92) | 10:50 |
mdnadeem | As of now, zaqar server update resource if a resource already exist | 10:51 |
mdnadeem | for the time being , i think zaqar client should also do the same | 10:51 |
Eva-i | mdnadeem: aha, I see now | 10:52 |
mdnadeem | Eva-i, for time being , i think i would update it according to zaqar server behaviour | 10:53 |
mdnadeem | and later on when i implement spec, when zaqar server nature will change at that time we will change client side too | 10:53 |
mdnadeem | whats say?? | 10:53 |
Eva-i | mdnadeem: yes, that's very nice =) | 10:54 |
mdnadeem | Eva-i, cool | 10:54 |
mdnadeem | Eva-i, Thanks for your comment on spec https://review.openstack.org/#/c/246147/ | 10:55 |
Eva-i | seems like my bug report then unneeded | 10:56 |
mdnadeem | Eva-i, Your point make sense, however initially i and flwang discussed about it and agrees to add head, now i need to discuss flwang once again | 10:56 |
mdnadeem | then i will update spec accordingly | 10:56 |
Eva-i | mdnadeem: yes, let's see what flwang thinks | 10:56 |
mdnadeem | Eva-i, your bug is needed, for time being its a bug untill we implement the spec. | 10:57 |
Eva-i | mdnadeem: oki | 10:57 |
mdnadeem | I will upload a patch soon for the same | 10:57 |
mdnadeem | :) | 10:57 |
*** venkat__ has quit IRC | 10:59 | |
Eva-i | mdnadeem: btw strange, but python-zaqarclient subscription tests work good on my machine. I wonder why they fail on dsvm gate. | 11:04 |
mdnadeem | Eva-i, I see subscription test fail on zaqar server code , | 11:06 |
mdnadeem | let me check on python-zaqarclient side | 11:07 |
Eva-i | mdnadeem: where do you see failing on zaqar server code? | 11:07 |
Eva-i | mdnadeem: there's jenkins log? | 11:07 |
mdnadeem | yes | 11:08 |
mdnadeem | http://logs.openstack.org/06/238006/11/check/gate-dsvm-mongodb-zaqar/fa93e08/console.html | 11:08 |
mdnadeem | serach ERROR | 11:08 |
mdnadeem | it is on zaqar server code | 11:09 |
mdnadeem | tests.functional.queues.v2.test_subscription.QueuesV2SubscriptionHttpFunctionalTest.test_subscription_create ... ERROR | 11:09 |
mdnadeem | 2016-01-12 10:34:18.183 | tests.functional.queues.v2.test_subscription.QueuesV2SubscriptionHttpFunctionalTest.test_subscription_delete ... FAIL | 11:09 |
mdnadeem | 2016-01-12 10:34:18.949 | tests.functional.queues.v2.test_subscription.QueuesV2SubscriptionHttpFunctionalTest.test_subscription_update ... ERROR | 11:09 |
Eva-i | mdnadeem: no, I think these tests belong to python-zaqarclient. We should find out if the tests are bad or zaqar server responds badly. | 11:12 |
mdnadeem | Eva-i, hmm | 11:12 |
therve | Eva-i, I believe those tests are not super robust | 11:13 |
therve | If the server gets into a specific state, they will fail | 11:13 |
therve | I noticed that for example ""DELETE /v2/queues/beijing/subscriptions/None" | 11:14 |
Eva-i | therve: hello | 11:14 |
Eva-i | therve: oh, I see | 11:15 |
*** openstackgerrit has quit IRC | 11:17 | |
*** openstackgerrit has joined #openstack-zaqar | 11:17 | |
Eva-i | also I see this in Zaqar jenkins screen log: 2016-01-12 09:19:18.021 4733 ERROR zaqar.notification.notifier [(None,) 10190888b4934b2ab640ec14b9217b53 a22b66c9e7bc404591a31102d9b2450d - - -] Failed to get subscription controller. | 11:20 |
Eva-i | And when functional test request comes, Zaqar says: 'ascii' codec can't decode byte 0x80 in position 1: ordinal not in range(128) | 11:23 |
*** akanksha_ has joined #openstack-zaqar | 11:51 | |
*** mdnadeem has quit IRC | 12:12 | |
*** GB21 has quit IRC | 12:21 | |
*** GB21 has joined #openstack-zaqar | 12:22 | |
*** eliqiao has quit IRC | 12:24 | |
*** eliqiao has joined #openstack-zaqar | 12:25 | |
openstackgerrit | LiuNanke proposed openstack/zaqar: make enforce_type=True in CONF.set_override https://review.openstack.org/266333 | 12:30 |
*** GB21 has quit IRC | 12:37 | |
*** shakamunyi has joined #openstack-zaqar | 13:04 | |
openstackgerrit | LiuNanke proposed openstack/zaqar: make enforce_type=True in CONF.set_override https://review.openstack.org/266333 | 13:06 |
*** eliqiao_ has joined #openstack-zaqar | 13:39 | |
*** eliqiao has quit IRC | 13:41 | |
*** eliqiao_ is now known as eliqiao | 13:42 | |
*** malini has joined #openstack-zaqar | 14:12 | |
*** malini1 has joined #openstack-zaqar | 14:14 | |
*** malini has quit IRC | 14:17 | |
*** njohnston has joined #openstack-zaqar | 14:27 | |
*** sriram has joined #openstack-zaqar | 14:32 | |
*** mpanetta has joined #openstack-zaqar | 14:59 | |
*** GB21 has joined #openstack-zaqar | 15:09 | |
*** kgriffs|afk is now known as kgriffs | 15:20 | |
*** GB21 has quit IRC | 16:24 | |
*** pradk has joined #openstack-zaqar | 16:42 | |
*** amitgandhinz has joined #openstack-zaqar | 16:55 | |
*** bradjones has quit IRC | 16:55 | |
*** akanksha_ has quit IRC | 16:57 | |
*** bradjones has joined #openstack-zaqar | 16:58 | |
*** bradjones has joined #openstack-zaqar | 16:58 | |
*** malini1 has quit IRC | 17:51 | |
*** malini has joined #openstack-zaqar | 18:27 | |
*** malini1 has joined #openstack-zaqar | 18:28 | |
*** malini has quit IRC | 18:31 | |
*** flwang has joined #openstack-zaqar | 18:51 | |
Eva-i | flwang: flwang1: ping | 19:05 |
*** amitgandhinz has quit IRC | 19:05 | |
*** amitgandhinz has joined #openstack-zaqar | 19:06 | |
*** flwang has quit IRC | 19:08 | |
*** flwang has joined #openstack-zaqar | 19:15 | |
Eva-i | I collected some thoughts about dsvm gates tests fails, including "how to reproduce": http://paste.openstack.org/show/m7wFYz7lSPpquOl2VTsy/ | 19:17 |
Eva-i | Unfortunately I haven't found exact cause. | 19:17 |
flwang | Eva-i: pong | 19:17 |
Eva-i | flwang: hello | 19:17 |
flwang | Eva-i: hi, 's up? | 19:17 |
Eva-i | flwang: I spend almost whole day trying to figure out spontaneous dsvm gates failing for Zaqar. | 19:18 |
Eva-i | flwang: this is my report: http://paste.openstack.org/show/m7wFYz7lSPpquOl2VTsy/. Maybe you know what the problem might be. | 19:19 |
flwang | thank you so much, clicking... | 19:20 |
flwang | sorry, i can't open the link, maybe something wrong with my home's network | 19:24 |
flwang | im still at home | 19:24 |
flwang | now | 19:24 |
*** flwang has quit IRC | 19:25 | |
*** mpanetta has quit IRC | 19:46 | |
flwang1 | Eva-i: thanks for the investigation | 20:57 |
flwang1 | i'm in office now, and i will debug the issue today | 20:58 |
*** njohnsto_ has joined #openstack-zaqar | 21:03 | |
flwang1 | Eva-i: still around? | 21:03 |
*** flwang has joined #openstack-zaqar | 21:03 | |
*** njohnston has quit IRC | 21:04 | |
Eva-i | flwang: yes. O | 21:07 |
Eva-i | flwang: I'm here | 21:07 |
flwang1 | Eva-i: i just reviewed your paste about the gate issue | 21:09 |
flwang1 | i noticed that as well | 21:09 |
Eva-i | flwang1: so what do you think? | 21:09 |
flwang1 | that will be my 1st priority today | 21:09 |
flwang1 | there are some possibilities | 21:09 |
flwang1 | 1. functional test can't drop database after running | 21:10 |
flwang1 | which is causing some potential issue | 21:10 |
flwang1 | 2. a bug in subscription get code which is causing the uwsgi confused :) | 21:12 |
therve | We have this issue with uwsgi since beginning, it's annoying | 21:13 |
flwang1 | that's what i can tell now | 21:13 |
flwang1 | need to investigate | 21:13 |
*** njohnsto_ has quit IRC | 21:14 | |
Eva-i | 1. I think this is not the first cause. Problem can occur even on the first run of test case. And if it occurs, subscription stays undeleted, causing subsequent runs of tests to fail. | 21:14 |
Eva-i | oki | 21:14 |
flwang1 | therve: oh, really? i even don't know that, any more details? | 21:18 |
*** kgriffs is now known as kgriffs|afk | 21:18 | |
therve | flwang, Not really. But the bad status line error is masking the real error, whatever that is | 21:18 |
*** kgriffs|afk is now known as kgriffs | 21:20 | |
flwang1 | therve: so does that mean there must be a bug in our code, uwsgi just masks the real issue, right? | 21:22 |
therve | flwang, That's what I'd say yeah | 21:22 |
therve | I can try something | 21:23 |
*** njohnston has joined #openstack-zaqar | 21:23 | |
flwang1 | therve: cool, good to know | 21:23 |
openstackgerrit | Thomas Herve proposed openstack/zaqar: DNM: don't use uwsgi on the default port https://review.openstack.org/266577 | 21:25 |
flwang1 | therve: hmm... so we're using websocket as the default transport? | 21:28 |
therve | flwang, Not sure what you mean. No, probably? | 21:29 |
flwang1 | https://review.openstack.org/#/c/266577/1/devstack/plugin.sh | 21:29 |
*** mdnadeem has joined #openstack-zaqar | 21:29 | |
flwang1 | i'm seeing the change you posted | 21:29 |
therve | Ah, yeah. We set the transport to websocket in the conf so that the zaqar-server process runs websocket | 21:30 |
therve | And uswgi runs the wsgi transport | 21:30 |
therve | My change is a trick so that uswgi runs on a random port, and zaqar-server runs wsgi instead of websocket | 21:30 |
*** amitgandhinz has quit IRC | 21:31 | |
flwang1 | therve: personally, i would prefer to run zaqar server with wsgi instead of websocket | 21:32 |
Eva-i | Devstack starts two zaqars: websocket one(on port 9000 with unmodified zaqar.conf) and wsgi one (on port 8888 with transport driver overrided to wsgi) | 21:33 |
therve | flwang, Well that's not the point. You can only run websocket with zaqar-server | 21:33 |
therve | So instead of having 2 zaqar-server, we have one and uwsgi | 21:33 |
flwang1 | therve: yep, i see | 21:34 |
*** amitgandhinz has joined #openstack-zaqar | 21:34 | |
*** mdnadeem has quit IRC | 21:46 | |
*** sriram has quit IRC | 21:47 | |
ryansb | therve: or flwang1 : if you were using the zaqar CLI, and asked for a curl command format of a signed URL | 21:51 |
ryansb | how would you want the client-id field to work? | 21:51 |
ryansb | just generate a random one in the CLI? | 21:52 |
flwang1 | ryansb: i think end user should provide it, and maintain it | 21:52 |
therve | ryansb, Any reason not to display the one used? | 21:53 |
therve | I mean the curl command appears when you actually make the call, right? | 21:53 |
ryansb | well one wasn't used to create the signed URL | 21:53 |
therve | Hum I don't get it | 21:53 |
ryansb | therve: so I'm adding a "--as-curl" option, that will output a formatted curl command | 21:54 |
therve | Oh | 21:54 |
ryansb | so I was thinking folks would want to be able to just copy & paste the command | 21:54 |
therve | That's a bit weird | 21:54 |
ryansb | I was thinking it'd be useful for folks using scripts to interact w/ zaqar | 21:54 |
therve | I like the curl output when you're in debug mode, but I think that comes by default | 21:55 |
ryansb | yeah, this is facing users (only when they ask for it) | 21:55 |
therve | Not sure why signed urls would be a special citizen though | 21:55 |
ryansb | because to make them work with curl you have to do: curl http://192.168.122.59:8888/v2/queues/fooq/messages --header 'URL-Signature: bb73361a3bfbc223c09b9e24b96f8bc49fc8eb167a25424bb6fb83ba7662c012' --header 'URL-Expires: 2016-01-13T21:50:13' --header 'URL-Methods: GET' --header 'URL-Paths: /v2/queues/fooq/messages' --header 'X-Project-ID: 419f66c62c2644aa82565f16adff2efe' --header "Client-ID: | 21:56 |
ryansb | $(uuidgen)" | 21:56 |
ryansb | and I figured if you use the CLI to create a URL, you're unlikely to be interested in copy-pasting the 6 values (and knowing all the header names) to use the URL | 21:57 |
flwang1 | Eva-i: i run all the functional test locally many times, and all of them succeed | 21:57 |
openstackgerrit | Ryan Brown proposed openstack/python-zaqarclient: First pass at CLI for signed URLs https://review.openstack.org/253731 | 21:58 |
openstackgerrit | Ryan Brown proposed openstack/python-zaqarclient: Add CLI support for signed URLs https://review.openstack.org/253731 | 21:59 |
ryansb | therve: flwang1 https://review.openstack.org/#/c/253731/ is ready for review, should be able to have it in before M2 since it's a pretty small review | 22:00 |
*** njohnston has quit IRC | 22:01 | |
*** njohnston has joined #openstack-zaqar | 22:02 | |
flwang1 | ryansb: cool, thanks | 22:03 |
flwang1 | ryansb: vkmc: flaper87: therve: i'm going to set the gate job zaqarclient-dvsm-functional as voting, since the zaqar server is take it as a voting gate job | 22:04 |
flwang1 | which can avoid the issue like we're seeing for the subscription patches | 22:04 |
ryansb | sounds good to me | 22:04 |
flwang1 | that can ensure the functional test merged in zaqar client won't break zaqar server jobs | 22:05 |
*** njohnston has quit IRC | 22:06 | |
ryansb | sensible | 22:09 |
vkmc | flwang1, sounds good to me too | 22:11 |
Eva-i | flwang1: you run zaqar manually or under uwsgi? Tests always pass when zaqar started normally. | 22:12 |
flwang1 | run zaqar manually | 22:12 |
flwang1 | vkmc: ryansb: thanks for the feedback | 22:12 |
flwang1 | Eva-i: yep, so i'm thinking if it's related to the code | 22:13 |
Eva-i | flwang1: I think it's related to zaqar-server code. | 22:14 |
flwang1 | Eva-i: oh, really? | 22:14 |
flwang1 | but you sad when there is the connection issue, zaqar sever didn't get the request | 22:15 |
Eva-i | flwang1: I inspected python-zaqar code thoroughly. Found nothing. | 22:15 |
flwang1 | haha :) | 22:16 |
Eva-i | flwang1: between the client and zaqar there's uwsgi. Uwsgi for some reason drops connections. | 22:17 |
flwang1 | ok, at least it's a good news for me, the author of those subscriptions patches :D | 22:17 |
Eva-i | I think the reason is somewhere in Zaqar code. | 22:19 |
Eva-i | Something conflicts with uwsgi | 22:19 |
Eva-i | flwang1: you are also the author of Zaqar server's subscription section of transport. So still bad news for you =) | 22:21 |
flwang1 | Eva-i: :(.... | 22:21 |
flwang1 | sad panda | 22:21 |
*** amitgandhinz has quit IRC | 22:25 | |
*** amitgandhinz has joined #openstack-zaqar | 22:26 | |
openstackgerrit | Ryan Brown proposed openstack/python-zaqarclient: WIP: support building curl command for signed url https://review.openstack.org/266598 | 22:29 |
*** davideag_ has quit IRC | 22:31 | |
*** davideagnello has joined #openstack-zaqar | 22:32 | |
*** davideagnello has quit IRC | 22:35 | |
*** amitgandhinz has quit IRC | 22:35 | |
*** davideagnello has joined #openstack-zaqar | 22:36 | |
*** eliqiao has quit IRC | 22:54 | |
*** davideagnello has quit IRC | 22:54 | |
*** eliqiao has joined #openstack-zaqar | 22:55 | |
*** davideagnello has joined #openstack-zaqar | 22:56 | |
*** malini1 has quit IRC | 23:07 | |
*** pradk has quit IRC | 23:08 | |
*** davideagnello has quit IRC | 23:14 | |
*** davideagnello has joined #openstack-zaqar | 23:16 | |
*** eliqiao has quit IRC | 23:31 | |
*** eliqiao has joined #openstack-zaqar | 23:32 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!