It's nearly impossible to build a rendering engine that never crashes or hangs. It's also nearly impossible to build a rendering engine that is perfectly secure.
In some ways, the state of web browsers around 2006 was like that of the single-user, co-operatively multi-tasked operating systems of the past. As a misbehaving application in such an operating system could take down the entire system, so could a misbehaving web page in a web browser. All it took is one browser or plug-in bug to bring down the entire browser and all of the currently running tabs.
Modern operating systems are more robust because they put applications into separate processes that are walled off from one another. A crash in one application generally does not impair other applications or the integrity of the operating system, and each user's access to other users' data is restricted.
Showing posts with label Administration. Show all posts
Showing posts with label Administration. Show all posts
Wednesday, August 5, 2020
My Cat Taught Me Browser Task Manager
My cat walked on my keyboard, and this happened ,
She launched the Microsoft Edge Browser Task Manager that I didn't know existed. Modern Web Browsers like Mozilla Firefox, Google Chrome, and Microsoft Edge are of multiprocess architecture. The Chromium projects have a good introduction about the advantage of this design and that I quote,
"
"
So when a browser runs, it creates multiple processes. However, old fashioned as I am, I wasn't aware that Microsoft Edge browser had a tool to show and to help users manage the processes -- the keyboard shortcut to open Microsoft Edge Browser Task Manager is SHIFT + ESC. The cat must have stepped on the two keys and taught me this. You can also launch it from the menu as the following screen shot shows, i.e., click at "...", select "More tools", and then "Browser task manager".
Sure enough, FireFox and Chrome browsers have the similar. In FireFox, open the menu, click "More", and select "Task Manager".
Sunday, November 25, 2018
Compile and Install HandBrakeCLI on Centos 7
I followed the following instructions,
The compilation and installation were successful. Although it continues and seems to run fine,
The compilation and installation were successful. Although it continues and seems to run fine,
HandBrakeCLI
complains,
Cannot load libnvidia-encode.so.1
Cannot load libnvidia-encode.so.1
Cannot load libnvidia-encode.so.1
Cannot load libnvidia-encode.so.1
Monday, September 5, 2016
Switching Back to Upstart on Ubuntu 16.04 LTS
Ubuntu 16.04 LTS has adopted
systemd
as its default system and service manager, i.e., the init
manager. Although systemd offers many benefits, such as, aggressively starting services concurrently, you may sometimes want to switch back to upstart
, the older system and service manager for Ubuntu because some services that you still have to run depend on it. Below are the steps that you can play with to switch to back upstart
. However, since Ubuntu 16.04 is now designed with systemd
as default system and service manager, many other services and applications are not designed to work without systemd
. As a result, the following steps, as a few readers have noticed, may render your Ubuntu installation unusable. To run a Linux system without using systemd
, the best approach is, to select and set up a Linux distribution that does not rely on systemd
. See the Without-Systemd Wiki for more information and a list of Linux distributions. - Install
upstart-sysv
and removesystemd-sysv
.
sudo apt-get install upstart-sysv
-
Update
Ubuntu
to reflect the change that you just made.
sudo update-initramfs -u
-
Now you need to remove a few remaining
systemd
package in the system. This step removes package includinglibpam-systemd
.sudo apt-get purge systemd
If you do not perform this step, you will see an error message as follows after you reboot the system and log back in.
[ 26.664057] systemd-logind[4445]: Failed to start user service, ignoring: Unknown unit: user@1000.service
-
Now reboot and log back in. You should see your system with a clean bill of health with
upstartd
back at the helm.
Monday, February 29, 2016
Exchange Calendars in Mozilla Thunderbird with Lightning
This post shows how you may add your Exchange Server calendar to Thunderbird with Lightning Add-on.
1. Install Thunderbird with Lightning.
Download Thunderbird from Mozilla. The most recent reversions, such as, version 38.6.0 has already included Lightning.2. Install the Exchange Calendar Lightning Add-on
The Exchange Calendar Lightning Add-on was previously the Exchange EWS Provider Add-on for Lightning that was developed at 1st Setup. It is now being maintained and developed by Ericsson.
Download the binary build of the recent version from its release channel. For instance, you can download directly the binary build of the per-release v3.6-beta1, exchangecalendar-v3.6.0-beta1.xpi. Save the xpi file and note the location.
Now, you can install the Lightning Add-on.
- On Thunderbird, switch to the Calendar Tab by pressing "CTRL-SHIFT-C".
- Then go to "Tools", then "Add-ons", "Settings", "Install Add-on from File ...", and finally, select the downloaded xpi file to install. Upon completion, restart Thunderbird.
3. Add an Exchange Calendar to Thunderbird.
This step turns out to be a trick part. If you network administrator is cooperative and publicizes the settings for your Exchange Server, your life can be easier. Unfortunately, it has been not my case. Below are the steps you may try.(1). Set up Exchange Calendar in Thunderbird using Exchange's autodiscovery function
You may follow the instruction provided by the developers of the Exchange Calendar Lightning Add-on and attempt to set up your Exchange calendar in Thunderbird Lighting. The instruction is "How to Add Your Calendar to Thunderbird".
If this attempt fails, you may try the second approach below.
(2). Set up Set up Exchange Calendar in Thunderbird mannually
When you come to this step, the last attempt must have failed. However, it still sometimes provide you with a piece of useful information, that is, the "Primary email address" that may not necessarily be what you think it should be.
You may follow the steps outlined in "Add a Microsoft Office 365 Calendar" at 1-st Setup.
However, I found that in my case the "Primary email address" and the "Username" were different and the Username must take the form of "myusername@mycompany.com" while the "Primary email address" takes the form of "myusername@mycompanyaltname.onmicrosoft.com".
You may have to try both combinations to see which one works for you.
Reference
- Leah S., "Office 365 (Thunderbird) - Exchange Calendar and Tasks Add-On for Lightning," https://kb.wisc.edu/office365/page.php?id=29243, retrieved on February 29, 2016
- Leah S., "Office 365 (Thunderbird) - Configure Thunderbird," https://kb.wisc.edu/office365/page.php?id=28427, retrieved on February 29, 2016
- Mozilla Support Forum, "Thunderbird does not work with office 365," https://support.mozilla.org/en-US/questions/1059850, retrieved on February 29, 2016
- Mozilla Developers, "Thunderbird Lightning User Interface," https://support.mozilla.org/en-US/kb/lightning-user-interface#w_switching-between-mail-tabs-and-lightning-tabs, retrieved on February 29, 2016
- 1st Setup Admin, "Add a Microsoft Office 365 Calendar," http://www.1st-setup.nl/wordpress/wp_super_faq/add-a-microsoft-office-365-calendar/, retrieved on February 29, 2016
- 1st Setup Admin, "Exchange EWS Provider Add-on for Lightning," http://www.1st-setup.nl/wordpress/poducten/exchange-ews-calendar-and-tasks-add-on-for-thunderbird-lightning/ , retrieved on February 29, 2016
- Ericsson Exchange Calendar Team on Github, "How to Add Your Calendar to Thunderbird," https://github.com/Ericsson/exchangecalendar/wiki/How-to-Add-Your-Calendar-to-Thunderbird, retrieved on February 29, 2016
- Ericsson Exchange Calendar Team on Github, "Exchange Calendar Lightning Add-on Release," https://github.com/Ericsson/exchangecalendar/releases, retrieved on February 29, 2016
Monday, November 30, 2015
Cannot Start VirtualBox Virtual Machine after an Upgrade
Having upgraded Oracle Virtualbox on a Windows host, I found that I could not start any Virtual Machine instances. VirtualBox displays a dialogue window with the error message shown below,
Examining the virtual machine log file, i.e.,
The message indicates that Windows service vboxdrv, i.e., the Virtual Box Driver has some problem. Following the advice in the log, I issue
which indicates that Windows service vboxdrv does not exist. To fix the issue, I reinstalled the driver vboxdrv from the directory
If the installation is successful and you query the driver status again, you should see something similar below,
Now I can launch the virtual machine instances.
Examining the virtual machine log file, i.e.,
Logs\VBoxHardening.log
in the Virtual Machine instance directory, I found the following error message near the end of the log file,
1660.6c38: supR3HardenedVmProcessInit: Opening vboxdrv stub...
1660.6c38: Error opening VBoxDrvStub: STATUS_OBJECT_NAME_NOT_FOUND
1660.6c38: supR3HardenedWinReadErrorInfoDevice: NtCreateFile -> 0xc0000034
1660.6c38: Error -101 in supR3HardenedWinReSpawn! (enmWhat=3)
1660.6c38: NtCreateFile(\Device\VBoxDrvStub) failed: 0xc0000034 STATUS_OBJECT_NAME_NOT_FOUND (0 retries)
Driver is probably stuck stopping/starting. Try 'sc.exe query vboxdrv' to get more information about its state. Rebooting may actually help.
The message indicates that Windows service vboxdrv, i.e., the Virtual Box Driver has some problem. Following the advice in the log, I issue
sc.exe query vboxdrv
in a Windows Command Prompt window,
C:\>sc start vboxdrv
[SC] StartService: OpenService FAILED 1060:
The specified service does not exist as an installed service.
C:\>
which indicates that Windows service vboxdrv does not exist. To fix the issue, I reinstalled the driver vboxdrv from the directory
C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv
. From the Windows GUI, you can right click the VBoxDrv.inf
and choose "install".
If the installation is successful and you query the driver status again, you should see something similar below,
C:\>sc query vboxdrv
SERVICE_NAME: vboxdrv
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
C:\>
Now I can launch the virtual machine instances.
Tuesday, July 22, 2014
After Kernel Upgrade VMware Ubuntu Guest Hang During Boot
I am running a Ubuntu Saucy (13.04) guest and later a Ubuntu Trusty (14.04) guest using VMWare Player on Windows 8.1. What has troubled me is that the guest hangs every single time after the POST screen is shown during boot after I upgraded the kernel. I have to press "Ctrl-Alt-Del" to restart, enter "Advanced Option" from the Ubuntu boot menu and choose an old kernel to boot. I finally figured out how to solve the problem.
The hint of the solution came from my examining the VM log file. The location of the VM log file is on the VMware Player's "About VMware Player" window. From VMWare Player, you can open the window by clicking on the "Player" menu, next "Help", and then "About VMware Player". Below is an example of the "About VMware Player" window.
In the above example, the VM log file is at C:\Users\...\Ubuntu\vmware.log. When the Ubuntu is hangs, at the end of the VM log file, I saw some log messages similar to the below,
My guess is that the VMware Tools is not installed and configured properly for the new Linux kernel. The solution would to reinstall the VMware Tools. Since the Ubuntu guest hangs during boot, I have to find an alternate to do it. Luckily, I can boot the Ubuntu guest into the "Recovery Mode" with the problematic Linux kernel via the "Advanced Option" during boot.
I observed two difficulties when I tried to reinstall the VMware Tools in the "Recovery Mode".
To address the above difficulties, my solutions is,
In the above example, the VM log file is at C:\Users\...\Ubuntu\vmware.log. When the Ubuntu is hangs, at the end of the VM log file, I saw some log messages similar to the below,
2014-07-22T19:21:19.299-04:00| vmx| I120: GuestRpcSendTimedOut:
message to toolbox timed out.
2014-07-22T19:21:19.299-04:00| vmx| I120: Vix: [5648 guestCommands.c:1924]:
Error VIX_E_TOOLS_NOT_RUNNING in
VMAutomationTranslateGuestRpcError(): VMware Tools are not running in the guest
2014-07-22T19:21:25.635-04:00| vmx| I120: USBGW: Write arbitrator op:13 len:11
My guess is that the VMware Tools is not installed and configured properly for the new Linux kernel. The solution would to reinstall the VMware Tools. Since the Ubuntu guest hangs during boot, I have to find an alternate to do it. Luckily, I can boot the Ubuntu guest into the "Recovery Mode" with the problematic Linux kernel via the "Advanced Option" during boot.
I observed two difficulties when I tried to reinstall the VMware Tools in the "Recovery Mode".
- When I tried to install the VMware Tools when I switched to shell in the "Recovery Mode" by running <code>sudo ./vmware-install.pl</code>, I observed many warning messages similar to below,
The /tmp directory may be under attack
- You may have to download the VMware Tools, for which, we need to enable network in the "Recovery Mode".
To address the above difficulties, my solutions is,
- In the "Recovery Mode", first enable "network" from the list of options.
- Then go to shell (by choosing "Drop to root shell prompt").
- Start the
sshd
. This is a two-step procedure.
mkdir /var/run/sshd /usr/sbin/sshd
- Now, figure out the IP address of the guest (e.g., using ifconfig)
- Log onto the virtual machine using a Secure Shell client as a regular user with
sudo
privilege. - Install the VMware player as the regular user using
sudo
. - Reboot. The the problem went away.
Tuesday, February 18, 2014
Redmine Error: Phusion Passenger Watchdog Failed to Start
Having upgraded a few package including Redmine and Ruby on Rail, my redmine host failed to start. I am running a Apache web server for the Redmine. When I browse the Redmine host, the error message returned in the web browser is
The Redmine's production log at the redmine/log directory indicates nothing is generated in the log, which means Redmine does not even run. To verify that Redmine itself is actually OK, run it from the command line,
Then point the browser to http://localhost:3000/. The Redmine server runs OK. Checking Apache's error log (the error_log file) a little bit closely, the error message looks the following,
Now it becomes clearer that the problem may be that Phusion Passenger cannot access the directory /var/log/passenger-analytics. After I give sufficient permission to the directory as follows, the Phusion Passenger starts OK and the Redmine runs normally.
The last step is necessary since SeLinux is enabled in my case. A second, perhaps a better approach is to route any analytics logs to Redmine's log directory, for which, I added the following line to the Redmine's Apache configuration file, in my case /etc/httpd/conf.d/redmine.conf,
In the above, replacing REDMINE_ROOT by the root directory of the Redmine installation, such as /home/usr/redmine etc. In this case, there is not need to change the directory permission and ownership since the Redmine directory should already have had correct permission and SeLinux context. In addition, you can consolidate the log files in a place that you like.
Application error
Rails application failed to start properly
The Redmine's production log at the redmine/log directory indicates nothing is generated in the log, which means Redmine does not even run. To verify that Redmine itself is actually OK, run it from the command line,
ruby script/rails server webrick -e production
Then point the browser to http://localhost:3000/. The Redmine server runs OK. Checking Apache's error log (the error_log file) a little bit closely, the error message looks the following,
[pid=9135 thr=140212503205888 file=ext/common/LoggingAgent/Main.cpp:287
time=2014-02-01 03:29:02.699 ]: *** ERROR: Cannot stat
'/var/log/passenger-analytics': Permission denied (13)
(empty)
[Sun Feb 01 03:29:02 2014] [error] *** Passenger could not be initialized
because of this error: Unable to start the Phusion Passenger watchdog
because it encountered the following error during startup: Unable to start
the Phusion Passenger logging agent: it seems to have crashed during startup
for an unknown reason, with exit code 1
At the same time, the redmine_error.log that belongs to the virtual host in which the Redmine runs shows something similar to,
[Mon Feb 01 22:55:15 2014] [warn] [client 10.0.0.1] (104)Connection reset by peer: mod_fcgid:
error reading data from FastCGI server
[Mon Feb 01 22:55:15 2014] [error] [client 10.0.0.1] Premature end of script headers:
dispatch.fcgi
Now it becomes clearer that the problem may be that Phusion Passenger cannot access the directory /var/log/passenger-analytics. After I give sufficient permission to the directory as follows, the Phusion Passenger starts OK and the Redmine runs normally.
chown -R apache:apache passenger-analytics
chmod -R 750 apache:apache passenger-analytics
chcon system_u:object_r:httpd_sys_content_t:s0 passenger-analytics
The last step is necessary since SeLinux is enabled in my case. A second, perhaps a better approach is to route any analytics logs to Redmine's log directory, for which, I added the following line to the Redmine's Apache configuration file, in my case /etc/httpd/conf.d/redmine.conf,
<VirtualHost *:80>
......
PassengerAnalyticsLogDir REDMINE_ROOT/log
......
</VirtualHost>
In the above, replacing REDMINE_ROOT by the root directory of the Redmine installation, such as /home/usr/redmine etc. In this case, there is not need to change the directory permission and ownership since the Redmine directory should already have had correct permission and SeLinux context. In addition, you can consolidate the log files in a place that you like.
Wednesday, October 23, 2013
Remove Old Linux Kernel Images in Ubuntu from Command Line
As you upgrade your Ubuntu Linux, the number of different versions of Linux kernel images grow. The Linux kernel images can occupy quite some disk space. Your /boot file system may be short of space for future upgrades of Linux kernels. It may look for a method to remove the old Linux kernel images. The following discussion suggests that we remove old kernel images using "Synaptic Package Manager",
However, it requires a graphical user interface. I am more interested in removing the old Linux kernel images using command line tools only, as sometimes, I simply do not have the luxury of running a GUI. However, the discussion above indeed a good guide. I simply follow the steps below,
Similar method can be applied to CentOS and Fedora Linux. You can accomplish it using yum alone.
However, it requires a graphical user interface. I am more interested in removing the old Linux kernel images using command line tools only, as sometimes, I simply do not have the luxury of running a GUI. However, the discussion above indeed a good guide. I simply follow the steps below,
-
Find the versions of Linux kernel images and their packages.
You may first list the content of the /boot directory, which gives you an idea what kernel images are installed. Then you can use dpkg to find out the package names. Here is an example,
userfoo@ubuntu:~$ dpkg -l | grep linux | grep 3.0
ii linux-image-3.0.0-12-generic 3.0.0-12.20 i386 Linux kernel image for version 3.0.0 on x86/x86_64
userfoo@ubuntu:~$
In the above, I am looking for "3.0" because I figured from listing the content of the /boot directory that I have a Linux image of version of 3.0.0 installed. The above tells me that the corresponding package of the Linux image is "linux-image-3.0.0-12-generic". -
Remove the Linux image package.
I remove the above Linux image package using apt-get.
userfoo@ubuntu:~$ sudo apt-get remove linux-image-3.0.0-12-generic
Similar method can be applied to CentOS and Fedora Linux. You can accomplish it using yum alone.
Subscribe to:
Posts (Atom)