Bugs!
What to do if you find a bug!
Please email
me botlog.txt and a description of the problem and what was going
on
when the problem occurred!
Please
telegram me about it because I do not want to drop everything I'm doing
to fix the at that moment, and if you send me an email then I will be
sure
to remember to look into the problem later!
Or, you can now submit bug reports to the Turtleflight
Forum!
Known bugs:
- If an error occurs when reloading macros (due to a syntax error
in the
macros file), the program may become unstable. (The workaround is to
restart
the program if an error occurs when reloading macros.)
- The $nextnear function sometimes returns a blank string. (The
workaround
is to use the $nearby function instead.)
- If two instances are started at the same time, the Delete
button
on the Instances window may get grayed out improperly. (The workaround
is to use the Connection/Delete Instance menu item,or better yet don't
try to start two instances at exactly the same time!)
- Error messages don't always properly indicate the point in the
input
string
where the error occurred. In particular, if the error is within a
macro,
then the indicator will show an erroneous error location.
- The timestamp macro (that replaced the function version when I
added
the
@eventtime function) isn't entirely accurate. Better to use @eventtime
instead, anyway, since @timestamp is only accurate to the second. I'm
keeping
@timestamp around for backward compatibility only.
- A very rare and puzzling bug has something to do with the log
window's
RichEdit component. I haven't seen it for many versions. The program
crashes
with a "RichEdit error" message. Please let me know if you experience
this,
and the circumstances. If possible email your botlog.txt file too. :)
NOTE:
I suspect this may have something to do with conflict between threads. Update
6/3/02: I haven't seen this in a long time, I think it went away. :)
- Flicker: I've tried to reduce the flicker that occurs when the
log
window
gets full (1000 lines) and lines are removed from the top. The
Actions/Advanced/Anti-Flicker
menu item toggles this. However when anti-flicker is on, sometime
garbage
will be left in the log window from overlapping windows that are closed
just at the same moment that the log window scrolls. It's ugly, but
harmless.
- Scroll Lock: this works, but somewhat awkwardly. If you click
anywhere in the log window after turning on scroll lock, it effectively
cancels it. An alternative is to instead use
Chat/Mute Log which greys out the log window and stops new chat from
appearing. New chat will still be sent to the log file if it is
opened.
Fixed in 7.12.16:
- The @nextnum and @nextnum_ functions will return the wrong
number if
they are called while the global variable list window is opened, and if
the destination list name comes alphabetically before the source list
name. (This is because the global variable list is automatically sorted
when the variable list window is open, so a new destination list item
gets inserted before the most recent index point, making the index
incorrect.)
Fixed in 6.3.5:
- The program would sometimes locks up if the user tried to flush
the Action
queue.
Fixed in 6.0:
- When run continuously over a period of days, Magsbot will slowly
use more
and more memory. Restarting it every few days is the workaround. This
is
a major bug, yes, and I'm trying to fix it as soon as possible. Memory
leaks are notoriously tough to pin down though. (Update: as of version
4.7 Magsbot uses a new memory manager, and the memory leak seems to be
much less, but I'm not sure it's entirely gone...still testing. It may
be that the memory loss only occurs after a disconnection. At any rate,
Magsbot can run at least for a week or more without a restart.) Update: I believe this problem no longer
exists, practically speaking. Only very tiny amounts of memory may
still get "lost" under rare circumstances, such as forceably closing a
thread that was started using the THREAD {} clause, by using the
THREADEND command. In that case, the variables in the thread's local
variable list may not get freed.
Fixed in 4.0:
- Starting a new instance with AutoEnter checked, when there is
already
another
instance running, will cause an error message and the new instance will
fail to enter the world, because the Location tab gets cleared (no
world
name) when it starts up. (The workaround is to start new instances with
AutoEnter unchecked, then type the desired world name and coordinates
and
click Set to enter the world.) (Fixed in 4.0 b8.)
- Client list sometimes gets blank rows in it.
- If the same IP is connected more than once as a client, the IP in
the
client
window should not be grayed until all connections from that IP
are
closed.
- @wordinlist and macros derived from it
should
not
have been case-sensitive. Fixed in 4.0 b3.
- An error occurs if the behavior
table
is cleared
completely, then the user attempts to paste rows into it. (The
workaround
is to add a blank row before pasting, then delete the blank row
afterward.)
Fixed in 4.0 a47.
- The wrong instance could have its status
button grayed
out when an instance failed to enter a world. Fixed in 4.0 a45.
- The wrong variable list was being passed
to
the FTN
command, in version 4.0 a44. That's fixed in 4.0 a45.
- Concatenation of strings in a proc name
argument
(e.g. in CLICKBTN) wasn't working right, so with a command like CLICKBTN
$a+$b the $b
part would be lost.
- List index error when Goto Bookmark,
fixed.
- SAVELISTTOPD wasn't working right,
sometimes
saved
0 lines to file. Fixed 1/26/03.
- EJECTADD, etc commands weren't working
right.
Fixed
1/26/03.
- The alias system didn't work right if no aliases were declared
for a
particular
bot name. Alias are now handled differently, by defining global
variables
(Alias buttons on Actions panel, main tab) instead of the userdefs.udf
file.
- AWCoords button didn't translate altitude properly.
- DELETEINSTANCE deleted the wrong instance under certain
circumstances.
- Sometimes the wrong instance got greyed on the Instance List when
an
instance
failed to enter a world.
- An error could occur if Magsbot was closed or a button or
behavior
table
entry deleted while code in the button or in the behavior table entry
was
still executing.
Fixed in 3.0:
- Fixed the arrow icon on survey dialog (it looked like a diamond
on some
computers, depending on the fonts installed.)
- bug: saving a button category changed the default button file
path
- Fixed the distance macros @dist, etc.
- bug: $fmt wouldn't take constant strings as arguments
- bug: @uns wasn't working right
- bug: @btncount_[@tab] didn't return correct number
- The Nearby List only showed one entry for multiple avatars that
have
the
same name. That could only happen with bots, since citizens can't have
the same name, of course. But the bug was fixed and some new functions
were added to allow avatars to be selected by session number, if
multiple
avs of the same name are present. (Selecting avatars by their
session
number instead of name is actually the normal way the SDK does it, but
I originally used selection by name because I thought it would be
simpler
for users. You can still do it that way, but bear in mind that it is
possible
for there to be several avs with the same name in an area, if they are
bots.)
- bug: clicking a button highlights it without unhighlighting
previously
selected button. fixed.
Fixed long, long ago:
- Reloading the macros file was resulting in
the
program
crashing. I believe this is fixed now, but if you experience any
strange
errors in Magsbot, it may be this bug. Workaround: if you make changes
to the macros file and need to reload it, restart the program instead
of
reloading the macros file from the menu. Or if you reload buttons and
behavior
after reloading the macros, it will also prevent the problem.
- A negative sign preceeding a variable is dropped when the
expression is
packed. (i.e., -@x becomes @x) A workaround is to use @x*-1 instead of
-@x, until I fix this.
- The main timer sometimes pauses when you open a modal window,
such as
the
edit window.
- Communications with the world server sometimes stall. This is a
result
of the "fix" (ooops) I did to try to prevent a pause when opening a
modal
window. Until I fix it, you can restart the communications simply by
opening
the command window and closing it again (F5 then Esc).
- If an object's data has an embedded carriage return (if someone
typed
Ctrl-Enter
to start a new line when typing something in the description field for
the object, for instance), then a propdump created using the AW utility
for that purpose will place an ASCII 127 following each carriage
return,
but Magsbot survey routines don't currently do that.
- This is a new one within the last beta
version
or two:
sometimes the bot will disconnect without any sign of being
disconnected.
It will disappear from the world but not show on the instance list that
it's been disconnected. You need to restart to program to reconnect;
apparently
the universe connection is being lost. The mysterious "Reason 10043"
(not
listed in the SDK reason codes!) is reported. This seems to happen
after
a "wsf" (waiting-for-server) situation in the world. I don't know what
I changed that started this happening! Arrgh.
- Sometimes when you double-click on the "On"
or
"Off"
in the "Active" column of the behavior table, it doesn't change like it
should. The workaround is to just select the "On/Off" with the mouse
then
hit the Enter key to toggle the On/Off.