Issue Details (XML | Word | Printable)

Key: MBS-4731
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Normal Normal
Assignee: Ian McEwen
Reporter: Joachim LeBlanc
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
MusicBrainz Server

ISE: Edit Search for My Vote != None && Status = Open

Created: 16/May/12 06:15 PM   Updated: 09/Jul/12 10:46 AM   Resolved: 09/Jul/12 10:46 AM
Component/s: Edit system, Search
Affects Version/s: None
Fix Version/s: Bug fixes, 2012-07-09


 Description  « Hide
Internal Server Error
Oops, something went wrong!

Error:

Caught exception in MusicBrainz::Server::Controller::Edit->search "Failed query:
	'SELECT DISTINCT edit.* FROM edit  WHERE  ((EXISTS (
        SELECT TRUE FROM vote
        WHERE vote.editor = ?
        AND vote.superseded = FALSE
        AND vote.vote = any(?)
        AND vote.edit = edit.id
    )) and (edit.status = any(?)))
         ORDER BY open_time desc
         LIMIT 500 OFFSET ?'
	(132927 -1 0 1 ARRAY(0x662ce60) 0)
DBD::Pg::st execute failed: called with 6 bind variables when 4 are needed at lib/Sql.pm line 79.

 at lib/Sql.pm line 84
	Sql::__ANON__('DBD::Pg::st execute failed: called with 6 bind variables when...') called at local/lib/perl5/Try/Tiny.pm line 100
	Try::Tiny::try('CODE(0x10202fe0)', 'Try::Tiny::Catch=REF(0x101cc698)') called at lib/Sql.pm line 86
	Sql::select('Sql=HASH(0xc903c60)', 'SELECT DISTINCT edit.* FROM edit  WHERE  ((EXISTS (
        S...', 132927, -1, 0, 1, 'ARRAY(0x662ce60)', 0) called at lib/MusicBrainz/Server/Data/Utils.pm line 224
	MusicBrainz::Server::Data::Utils::query_to_list_limited('Sql=HASH(0xc903c60)', 0, 25, 'CODE(0x10167e50)', 'SELECT DISTINCT edit.* FROM edit  WHERE  ((EXISTS (
        S...', 132927, -1, 0, 1, ...) called at lib/MusicBrainz/Server/Data/Edit.pm line 73
	MusicBrainz::Server::Data::Edit::run_query('MusicBrainz::Server::Data::Edit=HASH(0xac5a750)', 'MusicBrainz::Server::EditSearch::Query=HASH(0x10203268)', 25, 0) called at lib/MusicBrainz/Server/Controller/Edit.pm line 190
	MusicBrainz::Server::Controller::Edit::__ANON__(25, 0) called at lib/MusicBrainz/Server/Controller.pm line 185
	MusicBrainz::Server::Controller::_load_paged('MusicBrainz::Server::Controller::Edit=HASH(0xc220a48)', 'MusicBrainz::Server=HASH(0xd706290)', 'CODE(0x10150d08)') called at lib/MusicBrainz/Server/Controller/Edit.pm line 191
	MusicBrainz::Server::Controller::Edit::search('MusicBrainz::Server::Controller::Edit=HASH(0xc220a48)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst/Action.pm line 65
	Catalyst::Action::execute('Catalyst::Action=HASH(0x666b360)', 'MusicBrainz::Server::Controller::Edit=HASH(0xc220a48)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst.pm line 1667
	eval {...} called at local/lib/perl5/Catalyst.pm line 1667
	Catalyst::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0x666b360)') called at local/lib/perl5/Catalyst/Plugin/StackTrace.pm line 94
	Catalyst::Plugin::StackTrace::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0x666b360)') called at lib/MusicBrainz/Server.pm line 298
	MusicBrainz::Server::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0x666b360)') called at local/lib/perl5/Catalyst/Action.pm line 60
	Catalyst::Action::dispatch('Catalyst::Action=HASH(0x666b360)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst/Controller.pm line 125
	Catalyst::Controller::_ACTION('MusicBrainz::Server::Controller::Edit=HASH(0xc220a48)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst/Action.pm line 65
	Catalyst::Action::execute('Catalyst::Action=HASH(0xc551b58)', 'MusicBrainz::Server::Controller::Edit=HASH(0xc220a48)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst.pm line 1667
	eval {...} called at local/lib/perl5/Catalyst.pm line 1667
	Catalyst::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0xc551b58)') called at local/lib/perl5/Catalyst/Plugin/StackTrace.pm line 94
	Catalyst::Plugin::StackTrace::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0xc551b58)') called at lib/MusicBrainz/Server.pm line 298
	MusicBrainz::Server::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0xc551b58)') called at local/lib/perl5/Catalyst/Action.pm line 60
	Catalyst::Action::dispatch('Catalyst::Action=HASH(0xc551b58)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst/Dispatcher.pm line 257
	Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x408f0c8)', 'forward', 'MusicBrainz::Server=HASH(0xd706290)', '_ACTION') called at local/lib/perl5/Catalyst/Dispatcher.pm line 237
	Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x408f0c8)', 'MusicBrainz::Server=HASH(0xd706290)', '_ACTION') called at local/lib/perl5/Catalyst.pm line 342
	Catalyst::forward('MusicBrainz::Server=HASH(0xd706290)', '_ACTION') called at local/lib/perl5/Catalyst/Controller.pm line 99
	Catalyst::Controller::_DISPATCH('MusicBrainz::Server::Controller::Edit=HASH(0xc220a48)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst/Action.pm line 65
	Catalyst::Action::execute('Catalyst::Action=HASH(0xc551738)', 'MusicBrainz::Server::Controller::Edit=HASH(0xc220a48)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst.pm line 1667
	eval {...} called at local/lib/perl5/Catalyst.pm line 1667
	Catalyst::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0xc551738)') called at local/lib/perl5/Catalyst/Plugin/StackTrace.pm line 94
	Catalyst::Plugin::StackTrace::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0xc551738)') called at lib/MusicBrainz/Server.pm line 298
	MusicBrainz::Server::execute('MusicBrainz::Server=HASH(0xd706290)', 'MusicBrainz::Server::Controller::Edit', 'Catalyst::Action=HASH(0xc551738)') called at local/lib/perl5/Catalyst/Action.pm line 60
	Catalyst::Action::dispatch('Catalyst::Action=HASH(0xc551738)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst/Dispatcher.pm line 257
	Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0x408f0c8)', 'forward', 'MusicBrainz::Server=HASH(0xd706290)', '/edit/_DISPATCH') called at local/lib/perl5/Catalyst/Dispatcher.pm line 237
	Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0x408f0c8)', 'MusicBrainz::Server=HASH(0xd706290)', '/edit/_DISPATCH') called at local/lib/perl5/Catalyst.pm line 342
	Catalyst::forward('MusicBrainz::Server=HASH(0xd706290)', '/edit/_DISPATCH') called at local/lib/perl5/Catalyst/Dispatcher.pm line 105
	Catalyst::Dispatcher::dispatch('Catalyst::Dispatcher=HASH(0x408f0c8)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst.pm line 1613
	Catalyst::dispatch('MusicBrainz::Server=HASH(0xd706290)') called at lib/MusicBrainz/Server.pm line 262
	Class::MOP::Class:::around('CODE(0x3c64d80)', 'MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/x86_64-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 162
	Class::MOP::Method::Wrapped::__ANON__('MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/x86_64-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 91
	MusicBrainz::Server::dispatch('MusicBrainz::Server=HASH(0xd706290)') called at local/lib/perl5/Catalyst.pm line 1963
	Catalyst::__ANON__() called at local/lib/perl5/Try/Tiny.pm line 76
	eval {...} called at local/lib/perl5/Try/Tiny.pm line 67
	Try::Tiny::try('CODE(0xd040180)', 'Try::Tiny::Catch=REF(0xd62c938)') called at local/lib/perl5/Catalyst.pm line 1969
	Catalyst::handle_request('MusicBrainz::Server', 'env', 'HASH(0xc8071c0)') called at lib/Catalyst/Plugin/AutoRestart.pm line 119
	Catalyst::Plugin::AutoRestart::handle_request('MusicBrainz::Server', 'env', 'HASH(0xc8071c0)') called at local/lib/perl5/Catalyst/Engine.pm line 856
	Catalyst::Engine::__ANON__('CODE(0xc82c9c0)') called at local/lib/perl5/Plack/Handler/FCGI.pm line 134
	Plack::Handler::FCGI::run('Plack::Handler::FCGI=HASH(0x20f8a30)', 'CODE(0xc7a96e0)') called at local/lib/perl5/Plack/Loader.pm line 88
	Plack::Loader::run('Plack::Loader=HASH(0x20c1e00)', 'Plack::Handler::FCGI=HASH(0x20f8a30)') called at local/lib/perl5/Plack/Runner.pm line 263
	Plack::Runner::run('Plack::Runner=HASH(0x1ec4808)') called at local/bin/plackup line 10"
Stack trace:
line 224 MusicBrainz::Server::Data::Utils
line 73 MusicBrainz::Server::Data::Edit
line 190 MusicBrainz::Server::Controller::Edit
line 185 MusicBrainz::Server::Controller
line 191 MusicBrainz::Server::Controller::Edit
line 298 MusicBrainz::Server
line 298 MusicBrainz::Server
line 298 MusicBrainz::Server
line 262 MusicBrainz::Server
Request data:

$VAR1 = {
          'query_parameters' => {
                                  'conditions.0.args' => 'no',
                                  'conditions.1.field' => 'status',
                                  'conditions.0.operator' => '!=',
                                  'conditions.0.voter_id' => '132927',
                                  'conditions.0.field' => 'vote',
                                  'conditions.1.args' => '1',
                                  'order' => 'desc',
                                  'combinator' => 'and',
                                  'field' => 'Please choose a condition',
                                  'conditions.1.operator' => '=',
                                  'auto_edit_filter' => '',
                                  'negation' => '0'
                                },
          'body_parameters' => {}
        };
            
URL: http://musicbrainz.org/search/edits?auto_edit_filter=&order=desc&negation=0&combinator=and&conditions.0.field=vote&conditions.0.operator=!%3D&conditions.0.voter_id=132927&conditions.0.args=no&conditions.1.field=status&conditions.1.operator=%3D&conditions.1.args=1&field=Please+choose+a+condition


Sort Order: Ascending order - Click to sort in descending order
patate12 added a comment - 20/Jun/12 03:08 PM

I indeed get Internal Server Error with your URL but I get 502 Bad Gateway with my URL.
I did it with the search edits form, how did you make yours ?


Joachim LeBlanc added a comment - 20/Jun/12 03:58 PM

My selection was

Status -> is -> Open
My Vote -> is not -> No Vote

The problem is the SQL query generated uses ARRAY(0x5d5b610) instead of the contents of the array


patate12 added a comment - 20/Jun/12 05:27 PM

Oh and mine was

Status -> is -> Open
My Vote -> is -> selected everything but No Vote


Ian McEwen added a comment - 07/Jul/12 03:31 AM

Depending if our SQL stuff is smart enough to turn arrays into comma-separated lists, one of two things needs to happen. Either:

a.) if we support turning ARRAY(whatever) into array[0], array[1], etc., the second array should turn into an array ref rather than being interleaved as it is now
b.) if we don't (more likely), both the first and second should be passed as arrays and not as arrayrefs, and the placeholders should be generated using our handy-dandy placeholders() function that takes an array and returns a comma-separated list like we need.


Ian McEwen added a comment - 08/Jul/12 11:30 PM

Oliver Charles added a comment - 09/Jul/12 10:46 AM

I've merged this straight to master, as this is clearly correct to me, and would like to get it in for today's release.