Re: [Openstack] [Swift] 404 re-reading just created container

2016-06-08 Thread Mark Kirkwood

On 08/06/16 19:07, Mark Kirkwood wrote:


changing this servers line to include the other proxy's memcache too 
(e.g proxy 192.168.122.21 again):


$ cat /etc/swift/proxy-server.conf
...
[filter:cache]
use = egg:swift#memcache
memcache_servers = 192.168.122.21:11211,192.168.122.24:11211

I no longer see any 404s with my test. Reading the install docs (a bit 
more carefully this time it seems), I see that they are leaning us 
towards doing that - am I understanding that correctly?




A completely different approach is to remove the 'cache' entry from the 
proxy pipeline. Obviously this is not ideal from a 
performance/scalability point of view, but we currently have a very 
small object storage archive so - for now - performance is not that 
critical. It will be later for sure, but that gives us time to plan for 
(centralized etc) memcache resources that Swift can be easily amended to 
use. Thoughts - is it crazy to switch off caching?


regards

Mark

___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


Re: [Openstack] [Swift] 404 re-reading just created container

2016-06-08 Thread Mark Kirkwood

On 08/06/16 10:50, Mark Kirkwood wrote:

On 08/06/16 07:06, Pete Zaitcev wrote:


The proxies are load balanced behind Haproxy (which I'm guessing is
causing the 404 - see below)

HAproxy is often troublesome, but I don't expect it is at fault in
this instance. The logs that you quoted show that the proxy-server
returned the 404. Do proxies happen to talk to separate memcached
instances by any chance?


Yeah - good point, each proxy has its own memcache.



Following up this point,

I can reproduce this issue by putting haproxy in front of some 
development proxies I have running as VMs on my workstation (easier to 
amend config in this case):


So I have 2 Swift proxies, each using itself as a memcache server (e.g 
proxy 192.168.122.21), other one (192.168.122.24) defined similarly:


$ cat /etc/swift/proxy-server.conf
...
[filter:cache]
use = egg:swift#memcache
memcache_servers = 192.168.122.21:11211

changing this servers line to include the other proxy's memcache too 
(e.g proxy 192.168.122.21 again):


$ cat /etc/swift/proxy-server.conf
...
[filter:cache]
use = egg:swift#memcache
memcache_servers = 192.168.122.21:11211,192.168.122.24:11211

I no longer see any 404s with my test. Reading the install docs (a bit 
more carefully this time it seems), I see that they are leaning us 
towards doing that - am I understanding that correctly?


regards

Mark





___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


Re: [Openstack] [Swift] 404 re-reading just created container

2016-06-07 Thread Mark Kirkwood

On 08/06/16 07:06, Pete Zaitcev wrote:

On Fri, 3 Jun 2016 16:09:06 +1200
Mark Kirkwood  wrote:


This is a Swift 2.7.0.1 system with 2 proxies and 3 storage nodes (each
the latter with 6 devices).

What is your replica count?


3 replicas for objects and containers - sorry forgot mention!


The proxies are load balanced behind Haproxy (which I'm guessing is
causing the 404 - see below)

HAproxy is often troublesome, but I don't expect it is at fault in
this instance. The logs that you quoted show that the proxy-server
returned the 404. Do proxies happen to talk to separate memcached
instances by any chance?


Yeah - good point, each proxy has its own memcache.


What you really need in this instance is to capture logs that have
the same tx-id on _all_ nodes. Then we can construct the scenario.



Thx, will do a bit more digging.

regards

Mark

___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


Re: [Openstack] [Swift] 404 re-reading just created container

2016-06-07 Thread Pete Zaitcev
On Fri, 3 Jun 2016 16:09:06 +1200
Mark Kirkwood  wrote:

> This is a Swift 2.7.0.1 system with 2 proxies and 3 storage nodes (each 
> the latter with 6 devices).

What is your replica count?

> The proxies are load balanced behind Haproxy (which I'm guessing is 
> causing the 404 - see below)

HAproxy is often troublesome, but I don't expect it is at fault in
this instance. The logs that you quoted show that the proxy-server
returned the 404. Do proxies happen to talk to separate memcached
instances by any chance?

What you really need in this instance is to capture logs that have
the same tx-id on _all_ nodes. Then we can construct the scenario.

-- Pete

___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


Re: [Openstack] [Swift] 404 re-reading just created container

2016-06-02 Thread Mark Kirkwood

On 03/06/16 16:09, Mark Kirkwood wrote:




I'll dig up the Haproxy config and post. However any thoughts in the
meantime?




We have:

defaults
  log  global
  maxconn  8000
  option  redispatch
  retries  3
  stats  enable
  timeout  http-request 10s
  timeout  queue 1m
  timeout  connect 10s
  timeout  client 1m
  timeout  server 1m
  timeout  check 10s

...
listen swift-pxy00
  bind :::8843 ssl crt /var/lib/puppet/ssl/certs/host.crt.pem ca-file 
/var/lib/puppet/ssl/certs/ca.pem no-sslv3

  balance  roundrobin
  mode  http
  option  httpchk /info
  server tst-wgtn-opxy1 10.16.0.39:8843  check ca-file 
/var/lib/puppet/ssl/certs/ca.pem crt 
/var/lib/puppet/ssl/certs/host.crt.pem ssl
  server tst-wgtn-opxy2 10.16.0.49:8843  check ca-file 
/var/lib/puppet/ssl/certs/ca.pem crt 
/var/lib/puppet/ssl/certs/host.crt.pem ssl



Which is missing a few options compared to 
https://swiftstack.com/blog/2013/06/10/configuring-haproxy-as-a-swiftstack-load-balancer/ 
. We will amend and retest.


___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack


[Openstack] [Swift] 404 re-reading just created container

2016-06-02 Thread Mark Kirkwood

Hi,

I did previously mention that I would start a new thread if I could 
reproduce 'unexplained 404s'. Well, I can - however not for the exact 
case I mentioned in the previous thread.


I have some python code using python-swiftclient that does:

for a number of containers:
create the container
create a number of (e.g 1000) objects in it

I'm seeing:

container con3
..object con3/obj0
Traceback (most recent call last):
  File "./swiftclient-creatread.py", line 72, in 
content_type='text/plain')
  File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line 
1709, in put_object

response_dict=response_dict)
  File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line 
1565, in _retry

service_token=self.service_token, **kwargs)
  File "/usr/lib/python2.7/dist-packages/swiftclient/client.py", line 
1281, in put_object

http_response_content=body)
swiftclient.exceptions.ClientException: Object PUT failed: 
https://api.ostst.wgtn.cat-it.co.nz:8843/v1/AUTH_5efabf2fdf4a41509c8ac941ae09ee36/con3/obj0 
404 Not Found  [first 60 chars of response] Not 
FoundThe resource could not be found.<



However the container has in fact been created ok - rerunning the 
program works fine (for the container where it failed prev, subsequent 
iterations *may* fail adding objects to just created containers).


This is a Swift 2.7.0.1 system with 2 proxies and 3 storage nodes (each 
the latter with 6 devices).


The proxies are load balanced behind Haproxy (which I'm guessing is 
causing the 404 - see below)


The variables recheck_account_existence, recheck_container_existence, 
request_node_count are all default.


Looking at the proxy logs, it seems that the request to create the 
container went to proxy number 1, and the request to create the 1st 
object in the container went to proxy number 2:


Jun  3 15:06:04 tst-wgtn-opxy1 proxy-server: 10.16.0.41 127.0.0.1 
03/Jun/2016/03/06/04 PUT /v1/AUTH_5efabf2fdf4a41509c8ac941ae09ee36/con3 
HTTP/1.0 201 - python-swiftclient-3.0.0 af45fc08a94d4097... - - - 
tx6aaf7d3208724079b1b92-005750f41c - 0.0444 - - 1464923164.878182888 
1464923164.922573090 0



Jun  3 15:06:04 tst-wgtn-opxy2 proxy-server: 10.16.0.41 127.0.0.1 
03/Jun/2016/03/06/04 PUT 
/v1/AUTH_5efabf2fdf4a41509c8ac941ae09ee36/con3/obj0 HTTP/1.0 404 - 
python-swiftclient-3.0.0 af45fc08a94d4097... - 70 - 
tx3ed4012d74e94eafa6ca1-005750f41c - 0.0007 - - 1464923164.943866968 
1464923164.944570065 0


I'll dig up the Haproxy config and post. However any thoughts in the 
meantime?


regards

Mark

___
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack