oh no!

Blender has started repeating oh no! over and over in the text box with no other explination or error code. My project still seems OK and renders correctly but I would really like to know what is going on and why blender seems to be freaking out for no reason.

repeating in what sense, restarting it self?

Just written? OHNOOHNOOHNO!


Erm, at least it’s not saying ‘oh yes!’ XD


Save regularly people.

Umm, it just came to the sad realization that it’s on windows. I’d be saying Oh, no! as well.

It continues working perfectly after this happens.
So why is it saying oh no? Will flames suddenly shoot out of my computer if I continue for to long. Was blender up all night calculating the trajectory of asteroids and this is its warning for the world? or did blender just have a rough childhood and is now prone to anxiety attacks?
I just don’t understand :confused:

hmm… On Windows, the title of the DOS window normally say the directory of where blender is located. For example, the title of the DOS window on my Windows XP says “C:\Documents and Settings\user\Desktop\blender.exe”.

Is this some type of hoax?

Edit: If it’s not, what blender version are you using and what type of Windows OS are you on?

This is not a joke, blender is doing this all the time for me.
I am using blender 2.45 on Windows XP/service pack 2 with a fairly new HP pavilion.

Well it is in the code under check for defgroups. Whatever that means.

/* check for defgroups */
dvert= CustomData_em_get(&em->vdata, evedef->data, CD_MDEFORMVERT);
if(tot==1 && dvert && dvert->totweight) {
bDeformGroup *dg;
int i, max=1, init=1;
char str[320];

for (i=0; i<dvert->totweight; i++){
dg = BLI_findlink (&ob->defbase, dvert->dw[i].def_nr);
if(dg) {
max+= snprintf(str, sizeof(str), “%s %%x%d|”, dg->name, dvert->dw[i].def_nr);
if(max<320) strcat(defstr, str);
else printf("oh no!

if(tfp->curdef==dvert->dw[i].def_nr) {
init= 0;
tfp->defweightp= &dvert->dw[i].weight;

That’s funny. There are little secret things that pop up here and there in Blender.

It is interesting to see the code, unfortunately I can’t understand it at all.

So can anyone understand that code? I would really like to know what is going on.

I’m not familiar with that area of the code, but it looks to me like you have a vertex group problem. It’s looking for a vert group, but can’t find it. My guess is that you have a modifier with a vertex group name in a field that doesn’t really exist. Normally, that field wouldn’t allow that, but for some buggy reason, it did in your file. Try killing off vertex group restrictions in your mesh modifiers.

wouldn’t the blender dev’s pass out a list of all the things that blender sputters outer and what they mean to us? i think the list must be somewhere, maybe on the asteroid that has doomed us all… i mean… uhh… nothing about the end of the wo-- nothing…

char str[320];

They used a 320 element character array for the variable str, and they’re initializing the empty elements using strcat. In C, if you have more elements than the size of the array, unpredictable things can happen.

max+= snprintf(str, sizeof(str), "%s %%x%d|", dg-&gt;name, dvert-&gt;dw[i].def_nr); 
if(max&lt;320) strcat(defstr, str);
<b>else printf("oh no!

The integer variable max starts at 1 and is incremented (max+=) according to the size of str. If max is less than 320, then add defstr to str. If it is not (else) print “oh no!”.

So this is due to an overflowing array. What you did to do this, however, I don’t know. It has to do with mesh deformed vertices…

This was pretty fun because I started to learn C yesterday (yipee! :D), so this was pretty interesting. Not enough comments though! Very hard to decipher. :smiley:



That made my day.

What a wonderfully useful message :rolleyes:

I bet the dev who coded that, would just love it if the compiler messages were just as “useful”. :cool: