Open bsipocz opened 1 week ago
Might have been introduced with #562 , I forgot to check the narrative docs before merging
No, that wasn't it, the problem exists on main
, prior merging that PR. And the CI for that PR runs for the narrative docs, but it also runs all the other tests before the docs thus the problem was masked.
On Fri, Jun 28, 2024 at 10:04:26AM -0700, Brigitta Sipőcz wrote:
raise DALQueryError(self._status[1], self._status[0], url)
pyvo.dal.exceptions.DALQueryError: Field query: Could not parse your query: Expected ")", found ',' (at char 1046), (line:15, col:36) /Users/bsipocz/munka/devel/pyvo/docs/registry/index.rst:160: UnexpectedException Does anyone else see the same problem?
Not me, or at least not now. Dang.
This is a message from the RegTAP server, and reading the message would suggest that pyVO's query generator indeed produces bad ADQL code. By now, there are several code paths that depend on the remote server (for starters; and curse optional features!), so it's at least not very surprising that depending on some global state (for a different error message I would have said: "which registry you use") pyVO bugginess might vary.
I'd now be curious what that code is, and the fastest way to find that out probably is for someone with a failing test set to cause the error and then call me so I pick the failing query from the logs (I do have some, but I am clearing them out pretty aggressively, so I cannot see the server's logs from when your test failed any more). To find my phone number, try:
pyvo.registry.search(ivoid='ivo://org.gavo.dc')[0].get_contact()
Or use tcpdump locally so that you can read what is sent? I usually go with (close any annoying app that communicates too much via http):
prepare request
tcpdump -i any -w /tmp/http.pcap
send my request
killall tcpdump
read the file (with tcpdump -r
) to find what exactly did I ask in the request
On Mon, Jul 01, 2024 at 03:34:53AM -0700, Manon Marchand wrote:
Or use tcpdump locally so that you can read what is sent? I usually go with (close any annoying app that communicates too much via http):
prepare request
tcpdump -i any -w /tmp/http.pcap
I like ngrep a lot for this kind of thing, but of course the rise of https makes these techniques substantially more complicated at the very least (IMHO one of the stronger reasons for considering forced https requests harmful, http://blog.tfiu.de/foced-https-redirects-considered-harmful.html). In this particular case, using get_RegTAP_query() instead of registry.search() would also work nicely...
But here I suspect having me pull the failure out of the server log really is the most straightforward way to proceed; who knows: It might even be some crazy stuff on the server side?
pytest -P registry -R
), they all passDoes anyone else see the same problem?