~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to doc/man/faq.rst

  • Committer: William Grant
  • Date: 2010-02-23 08:48:09 UTC
  • mfrom: (1673 trunk)
  • mto: This revision was merged to the branch mainline in revision 1674.
  • Revision ID: grantw@unimelb.edu.au-20100223084809-du6dvsxrjhw15ytr
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.. IVLE - Informatics Virtual Learning Environment
 
2
   Copyright (C) 2007-2009 The University of Melbourne
 
3
 
 
4
.. This program is free software; you can redistribute it and/or modify
 
5
   it under the terms of the GNU General Public License as published by
 
6
   the Free Software Foundation; either version 2 of the License, or
 
7
   (at your option) any later version.
 
8
 
 
9
.. This program is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
.. You should have received a copy of the GNU General Public License
 
15
   along with this program; if not, write to the Free Software
 
16
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
17
 
 
18
.. _ref-faq:
 
19
 
 
20
**************************
 
21
Frequently Asked Questions
 
22
**************************
 
23
 
 
24
This is a list of Frequently Asked Questions for IVLE. It answers questions 
 
25
about common issues encountered when configuring or running the system.
 
26
 
 
27
.. _ref-faq-how:
 
28
 
 
29
How can I...
 
30
============
 
31
 
 
32
... change the Terms of Service notice?
 
33
---------------------------------------
 
34
 
 
35
You should customize the ToS notice at :file:`/var/lib/ivle/notices/tos.html`.
 
36
 
 
37
... delete a user from IVLE?
 
38
----------------------------
 
39
 
 
40
This is usually a bad idea since it requires all the references to that user 
 
41
to be removed from IVLE. This may have unintended consequences particularly 
 
42
with groups or projects but might be required in installations where an 
 
43
existing login conflict with a new login (typically encountered when usernames 
 
44
are recycled).
 
45
 
 
46
The steps to completely remove a user would be:
 
47
 
 
48
1. Disable the users account
 
49
2. Unmount the users jailmount directory (typically 
 
50
   :file:`/var/lib/ivle/jailmounts/LOGIN`)
 
51
3. Backup the user's files (typically :file:`/var/lib/ivle/jails/LOGIN`) and 
 
52
   remove this directory.
 
53
4. Backup the user's repository (typically 
 
54
   :file:`/var/lib/ivle/svn/repositories/users/LOGIN` on the subversion 
 
55
   server) and remove this directory.
 
56
5. Make a backup of the IVLE database (``sudo -u postgres pg_dump ivle > 
 
57
   backup.sql``)
 
58
6. Either change the users login (``UPDATE login SET login='NEWLOGIN' WHERE 
 
59
   login='LOGIN'``) or remove all references to this login in the database
 
60
 
 
61
The following lines of SQL should remove all traces of a user ``LOGIN`` from 
 
62
the database::
 
63
 
 
64
    BEGIN TRANSACTION;
 
65
    DELETE FROM exercise_save USING login WHERE
 
66
        exercise_save.loginid = login.loginid AND login.login = 'LOGIN';
 
67
    DELETE FROM exercise_attempt USING login WHERE
 
68
        exercise_attempt.loginid = login.loginid AND login.login = 'LOGIN';
 
69
    DELETE FROM project_mark USING login WHERE marker = login.loginid AND
 
70
        login.login = 'LOGIN';
 
71
    DELETE FROM project_submission USING login WHERE
 
72
        submitter = login.loginid AND login.login = 'LOGIN';
 
73
    DELETE FROM project_extension USING login WHERE
 
74
        approver = login.loginid AND login.login = 'LOGIN';
 
75
    DELETE FROM assessed USING login WHERE
 
76
        assessed.loginid = login.loginid AND login.login = 'LOGIN';
 
77
    DELETE FROM enrolment USING login WHERE
 
78
        enrolment.loginid = login.loginid AND login.login = 'LOGIN';
 
79
    DELETE FROM group_member USING login WHERE
 
80
        group_member.loginid = login.loginid AND login.login = 'LOGIN';
 
81
    DELETE FROM group_invitation USING login WHERE
 
82
        (group_invitation.loginid = login.loginid OR
 
83
        inviter = login.loginid) AND login.login = 'LOGIN';
 
84
    DELETE FROM project_group USING login WHERE createdby = login.loginid AND
 
85
        login.login = 'LOGIN';
 
86
    DELETE FROM login WHERE login='LOGIN';
 
87
    COMMIT;
 
88
 
 
89
If you do not want to lose group data, a better option may be to reassign the 
 
90
user ``LOGIN``'s groups to ``NEWLOGIN`` (one possible option would be to 
 
91
create and use a 'nobody' account)::
 
92
 
 
93
    BEGIN TRANSACTION;
 
94
    DELETE FROM exercise_save USING login WHERE
 
95
        exercise_save.loginid = login.loginid AND login.login = 'LOGIN';
 
96
    DELETE FROM exercise_attempt USING login WHERE
 
97
        exercise_attempt.loginid = login.loginid AND login.login = 'LOGIN';
 
98
    UPDATE project_mark SET marker = l2.loginid FROM login AS l1, login AS l2
 
99
        WHERE marker = l1.loginid AND l1.login = 'LOGIN' AND l2.login = 
 
100
        'NEWLOGIN'
 
101
    DELETE FROM project_submission USING login WHERE
 
102
        submitter = login.loginid AND login.login = 'LOGIN';
 
103
    UPDATE project_extension SET approver = l2.loginid FROM
 
104
        login AS l1, login AS l2 WHERE approver = l1.loginid AND
 
105
        l1.login = 'LOGIN' AND l2.login='NEWLOGIN';
 
106
    DELETE FROM assessed USING login WHERE
 
107
        assessed.loginid = login.loginid AND login.login = 'LOGIN';
 
108
    DELETE FROM enrolment USING login WHERE
 
109
        enrolment.loginid = login.loginid AND login.login = 'LOGIN';
 
110
    DELETE FROM group_member USING login WHERE
 
111
        group_member.loginid = login.loginid AND login.login = 'LOGIN';
 
112
    DELETE FROM group_invitation USING login WHERE
 
113
        group_invitation.loginid = login.loginid AND login.login = 'LOGIN';
 
114
    UPDATE group_invitation SET inviter = l2.loginid FROM
 
115
        login AS l1, login AS l2 WHERE inviter = l1.loginid AND
 
116
        l1.login = 'LOGIN' AND l2.login='NEWLOGIN';
 
117
    UPDATE project_group SET createdby = l2.loginid FROM
 
118
        login AS l1, login AS l2 WHERE createdby = l1.loginid AND
 
119
        l1.login = 'LOGIN' AND l2.login = 'NEWLOGIN';
 
120
    DELETE FROM login WHERE login='LOGIN';
 
121
    COMMIT;
 
122
 
 
123
 
 
124
.. _ref-faq-why:
 
125
 
 
126
Why does...
 
127
===========
 
128
 
 
129
... Apache not restart?
 
130
-----------------------
 
131
 
 
132
Make sure no console processes are lying around (e.g. sudo killall
 
133
python), then restart with ``sudo /etc/init.d/apache2 restart``.  If the issue
 
134
persists, try stopping the server and starting it in two separate
 
135
steps, so you see the errors reported by the start script.
 
136
 
 
137
... IVLE dump me back to the login screen with no error when I try to login?
 
138
----------------------------------------------------------------------------
 
139
 
 
140
This is usually because IVLE can't save your session information. IVLE saves
 
141
sessions to a sessions directory on disk. Unfortunately, this is not currently
 
142
configurable in :file:`./setup.py` config. You need to edit the Apache config 
 
143
file.
 
144
 
 
145
Look for ``PythonOption mod_python.file_session.database_directory``. Make
 
146
sure it is set to the place you want. Then, you need to manually make sure
 
147
that directory exists. If you have multiple slaves, this directory will
 
148
need to be shared between them all.
 
149
 
 
150
The default is :file:`/var/lib/ivle/sessions`.
 
151
 
 
152
 
 
153
... ivle-buildjail fail with 'Error: Jail contains world writable path'
 
154
-----------------------------------------------------------------------
 
155
 
 
156
When running :program:`ivle-buildjail` you may occasionally see an error 
 
157
like::
 
158
 
 
159
    Error: Jail contains world writable path: 
 
160
    '/var/lib/ivle/jails/__base_build__/tmp/.ICE-unix'.
 
161
    This is a security vulnerability as jail template contents are shared 
 
162
    between users. Please either make this path world unwriteable or remove it 
 
163
    from the jail.
 
164
 
 
165
This means that writable files exist in the Jail template. If left in the jail 
 
166
then users would be able to edit a file that is shared between all jail 
 
167
instances. The usual solution is just to remove these file from the jail build 
 
168
directory and try again.
 
169
 
 
170
At present it is not possible to include world writable files outside a user's 
 
171
home directory so if this file is deliberately included you will need to 
 
172
ensure that it is not world writeable.
 
173
 
 
174
 
 
175
... the console return 'Console Restart' messages
 
176
-------------------------------------------------
 
177
 
 
178
There are three cases where a console may be restarted:
 
179
 
 
180
1. **Console Restart: The IVLE console has timed out due to inactivity**
 
181
 
 
182
    The Python console process is no longer running. This is most likey due to 
 
183
    the console process being automatically terminated due to no messages 
 
184
    being sent or received by the console in the previous 15 minutes.
 
185
 
 
186
    This message can also be triggered if the console is terminated for 
 
187
    another reason (such as being sent :const:`SIGKILL` from the system 
 
188
    command line or any other fatal signal).
 
189
 
 
190
2. **Console Restart: CPU Time Limit Exceeded**
 
191
 
 
192
   To prevent exhaustion of local system resources, Python console processes 
 
193
   are set with an CPU Time Limit of 25 seconds of user time (time executing 
 
194
   on the CPU rather than real "clock-on-the-wall" time).
 
195
 
 
196
   This setting can be configured by changing the values associated with 
 
197
   :const:`RLIMIT_CPU` in :file:`bin/trampoline/trampoline.c`.
 
198
 
 
199
3. **Console Restart: Communication to console process lost**
 
200
 
 
201
    IVLE was unable to understand a response from the console process. This 
 
202
    will only happen if the console sends a malformed response and quite 
 
203
    likely a bug.
 
204
 
 
205
4. **Console Restart: Communication to console process reset**
 
206
 
 
207
    IVLE's TCP connection to the console process was reset. May indicate 
 
208
    network issues.
 
209