Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
3 Odpowiedzi
13930 Widoki

Hi,

I am introducing Odoo in our organization and encounter an error in my browser (Firefox and Safari).
After finding the problem location, I have a solution, but I am not certain what the best way forward is. First, is patching the code enough or is this a symptom of another problem? Second, what is the best way to submit the patch? As you might guess, I am new to tinkering with Odoo. Please advise.

Here are the details. Request:

http://192.168.99.100/web?debug=#page=0&limit=80&view_type=list&model=project.project&action=142 

Popup:

Odoo Client Error
TypeError: undefined is not an object (evaluating 'val.constructor')
http://192.168.99.100/web/static/src/js/pyeval.js:814

After clicking OK (:-)) the next pop-up says:

Odoo Client Error
TypeError: undefined is not an object (evaluating 'dict['widget'].get('value')[1]')
undefined:74

 I use Odoo version 8.0-20150401 from the Docker image. The code at odoo-8.0/addons/web/static/src/js/pyeval.js 814 is:

var wrap_context = function (context) {
for (var k in context) {
if (!context.hasOwnProperty(k)) { continue; }
var val = context[k];
if (val === null) { continue; } // <======= also test against undefined?
if (val.constructor === Array) { // <======= line 814
context[k] = wrapping_list.fromJSON(val);
} else if (val.constructor === Object
&& !py.PY_isInstance(val, py.object)) {
context[k] = wrapping_dict.fromJSON(val);
}
}
return context;
};

At first glance I would say that the test for null should also include a test for undefined. Any thoughts from more experienced hackers?

Regards, Markus

Awatar
Odrzuć
Autor

Judging by the comments and answers, no one else encounters this problem. It was probably caused by a timeout of the nginx proxy. After tuning the proxy and restoring a backup of the data we seem to have no reoccurrence of the problem. Thank you for your time :-)

Autor Najlepsza odpowiedź

The timeout reported in the nginx log coincided with a request causing long query of the DB. As soon as the nginx timeout was longer than the query time the problem disappeared.

My guess is that the timeout reply received by the client is not converted to a proper error/exception structure in the 'context' array, causing an undefined entry in the array.

FYI: the relevant lines in nginx.conf to prevent the problem in my situation are:

http { 
server {
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;

Hope this helps.

Regards, Markus

Awatar
Odrzuć
Najlepsza odpowiedź

I just got the same error in a custom form, but there is no network traffic when the error occurs. How did you connect it to a proxy problem?

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
1
mar 24
2372
0
paź 23
2963
0
mar 16
4782
0
mar 15
4822
1
maj 25
1219